我正在 try catch 所有 div 元素中的文本,而不是第一个 div 的文本,它是类“B”的子元素
我整天都在敲我的头,但我似乎无法让它正常工作。
<div class="A">
Text 1
</div>
<div class="B">
<div>
Welcome 1
</div>
<div>
Welcome 2
</div>
</div>
这是我使用的表达方式:
//body//text()[not (//div[@class='B']/div[1])]
但它没有返回任何结果。
最佳答案
通过给它一个根元素使 XML 格式正确后,
<div>
<div class="A">
Text 1
</div>
<div class="B">
<div>
Welcome 1
</div>
<div>
Welcome 2
</div>
</div>
</div>
这里是所有 div
元素,它们没有 div
后代,也不是第一个有父元素的 div
具有“B”的 @class
属性值:
//div[not(descendant::div) and not(../@class='B' and position() = 1)]
上面的 XPath 选择了这两个 div
元素:
<div class="A">
Text 1
</div>
<div>
Welcome 2
</div>
因此您可以使用此 XPath 获取关联的 text()
节点:
//div[not(descendant::div) and not(../@class='B' and position() = 1)]/text()
...这将选择:
Text 1
Welcome 2
未按要求选择 Welcome 1
。
关于html - 如何在没有来自类 "B"的第一个 div 的情况下查找所有 div 元素中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34864650/