我需要提取所有具有某些文本节点的子节点。 Html结构可能如下:
<div>
<div>
A
</div>
<p>
<b>A</b>
</p>
<span>
B
</span>
</div>
我需要提取具有&#34; A&#34;文本。它应该返回div
和p
个节点
我尝试了以下xpath:
./*/*[contains(text(), 'A')]
./*/*[./*[contains(text(), 'A')]]
但第一个只返回div
&#34; A&#34;文本和第二个只返回p
&#34; A&#34;文本
是否可以构造将返回两个子节点的xpath?
节点包含&#34; A&#34;文本可能位于子节点中的任何级别
答案 0 :(得分:1)
如果需要返回两个子节点的XPath,请尝试使用
./*/*[contains(., "A")]
答案 1 :(得分:0)
我怀疑contains()在这里是错误的,除非你真的想要选择一个值为“HAT”的节点以及一个值为“A”的节点。
尝试
*/*[normalize-space(.)='A']