假设我有以下HTML代码段
<div id="parent_div">
<!-- First div -->
<div>
Hi <span>Dave</span>, how are you?
</div>
<!-- Second div -->
<div>
Hi, how are you?
</div>
<!-- Third div -->
<div>
Hi <span>Jenny</span>, how are you?
</div>
<!-- Fourth div -->
<div>
<span>Ryan</span>
</div>
</div>
我想使用XPATH来查找包含span和text的div。所以,在上面的例子中,我想找到第一个div和第三个div。无法选择第二个div,因为它不包含范围(仅包含文本),并且无法选择第四个div,因为它只包含范围(不包含文本)
我怎样才能在XPATH中这样做?如果重要,我正在使用PHP。
答案 0 :(得分:2)
您可以尝试使用此XPath:
//div[text()[normalize-space(.)] and span]
上面的XPath将选择具有child:<div>
元素的<span>
元素和非空文本节点(以跳过仅包含换行符的文本节点)