我有以下 HTML 结构

<div class="carousel">
  <ul class ="carousel-view">
    <li>
      <figure>
        <a id="one"/>
      </figure>
    </li>
    <li>
      <figure>
        <a id="two"/>
      </figure>
    </li>
  </ul>
</div>

如何使用 XPath 访问第一个 a 元素?请注意,列表中有多个 a 元素。

最佳答案

这些 XPath 表达式中的任何一个都将选择第一个 a 元素:

  • (//a)[1] 选择整个文档中的第一个 a
  • (/div/ul/li/figure/a)[1] 选择第一个具有显示遗产的 a
  • (//div[@class='carousel']/ul/li/figure/a)[1] 限制继承。
  • (//div[@class='carousel']//a)[1] 抽象了一些遗产。

  • 根据您在实际文档中显示的 XML 的上下文以及您是否希望将 a 元素限制为仅在某些其他元素下的元素进行选择。

    常见的错误

    注意 //a[1] 实际上选择了 多个 a 元素:
    <a id="one"/>
    <a id="two"/>
    

    因为 //a[1] 意味着选择作为其父元素的第一个子元素的 a 元素。

    必须使用括号 (//a)[1] 来选择
    <a id="two"/>
    

    单独作为文档中的第一个 a

    10-06 14:34
    查看更多