擅长:python、mysql、java
<p><strong>来自评论:</strong></p>
<blockquote>
<p>or the simplification of the actual
HTML I posted is too simple</p>
</blockquote>
<p>你说得对。什么是<code>.//span[@class="python"]//a[2]</code>的意思?这将扩展到:</p>
<pre><code>self::node()
/descendant-or-self::node()
/child::span[attribute::class="python"]
/descendant-or-self::node()
/child::a[position()=2]
</code></pre>
<p>它最终将选择第二个<code>a</code>子项(<code>fn:position()</code>指的是<code>child</code>轴)。因此,如果您的文档如下所示,则不会选择任何内容:</p>
<pre><code><span class='python'>
<span>
<span>
<img></img>
<a>google</a><!-- This is the first "a" child of its parent -->
</span>
<a>chrome</a><!-- This is also the first "a" child of its parent -->
</span>
</span>
</code></pre>
<p>如果需要所有子体中的第二个子体,请使用:</p>
<pre><code>descendant::span[@class="python"]/descendant::a[2]
</code></pre>