我试图捕获所有div元素中的文本,而没有第一个div的文本,即第34个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])]
但它没有返回任何结果。
答案 0 :(得分: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
元素,其中父级具有@class
属性值“B&#39;:
//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
。