【发布时间】:2014-10-02 23:13:45
【问题描述】:
给定以下 XML:
<root>
<li><span>abcText1cba</span></li>
<li><span>abcText2cba</span></li>
</root>
我想选择所有具有span 子节点的li 元素包含 Text1 的内部文本 - 使用 XPath。
我从/root/li[span] 开始,然后尝试进一步检查:/root/li[span[contains(text(), 'Text1')]]
但是,这不会返回任何节点。我不明白为什么,有人可以帮助我吗?
【问题讨论】:
-
您的 XPath 是正确的。您使用的是哪个处理器,或者它确实有一些严重的错误,或者您可能称它错误。作为旁注,我认为
/li[contains(span, 'Text1')]更优雅更短一些。您当然不需要text(),只需使用.,因为它会自动转换为原子值。 -
您的第二个 XPath 看起来确实正确。也许是命名空间问题?你的 XML 实际上是在命名空间中吗?
-
只是为了澄清,因为多年来它得到了一些支持:这是一个命名空间问题。