如何使用XPath选择在其后代内部具有任何文本的节点?

时间:2011-04-26 13:16:46

标签: xpath

我有一个像

这样的标签
<a href="xyz.html">
<b>Some text here</b>
</a>

如果我搜索文档

//a[text()]

标签不在列表中,因为链接标签没有直接的InnerText。如何将具有innerText的Item与其后代的任何位置匹配?

3 个答案:

答案 0 :(得分:2)

  

我如何匹配和项目匹配   一个innerText,它的任何位置   后代?

如果按项目表示a元素:

//a[.//text()]

如果您的XML树提供程序仅保留空白文本节点:

//a[.//text()[normalize-space()]]

元素的字符串值是其后代文本节点的串联,因此您还可以使用:

//a[string()]

或者

//a[normalize-space()]

答案 1 :(得分:0)

尝试://a[string(.) = "some text here"]

(或//a[contains(string(.), 'some text')]

答案 2 :(得分:0)

这也应该足够了:

//a//text()