XPath返回XHTML文件中的第一个<a></a>标记

时间:2018-01-04 08:04:53

标签: xpath xhtml

我是xpath的新手并且对此并不了解。我知道有一种方法可以使用xpath在xml / xhtml文件中查找特定标记。在我的情况下,我试图找到第一个(a)链接元素。不幸的是我的xpath String [// a [1] / text()]返回所有(a)链接标签而不是第一个

XPATH: //a[1]/text()

Text='Fachliche Expertise'
Text='Zielerreichung'
Text='Gesamtbeurteilung Leistung'

Expected:

Text='Fachliche Expertise'

这是xhtml代码:

<ul class="nav nav-tabs">
    <li class="nav-item">
        <a class="nav-link active null" data-toggle="tab" data-target="#group2">Fachliche Expertise</a>
    </li>
        <li class="nav-item">
        <a class="nav-link  null" data-toggle="tab" data-target="#group1">Zielerreichung</a>
    </li>
    <li class="nav-item">           
        <a class="nav-link  null" data-toggle="tab" data-target="#group7">Gesamtbeurteilung Leistung</a>
    </li>
</ul>

3 个答案:

答案 0 :(得分:2)

尝试以下XPath表达式:

/ul/li[1]/a/text()

由于HTML的结构似乎已知,我们可以导航到第一个<li>元素,然后从锚标记中选择文本。

答案 1 :(得分:2)

提供其他答案的问题

  • /ul/li[1]/a/text()在技术上是正确的但不是通用的 - 它特定于给定的XHTML结构和 不会在XHTML文件中提供第一个<a></a>标记 标题要求。
  • //a/text()[1]是错的。它将选择第一个文本节点 在所有a个元素中。

正确答案

这个XPath,

(//a)[1]
无论结构如何,

都会选择文档中的第一个a元素。然后可以通过此XPath

选择文本节点子节点
(//a)[1]/text()

答案 2 :(得分:0)

使用此Xpath:

//a/text()[1]

这将仅选择第一个节点。