我试图找到DOM中紧跟在前一个文本节点之后的文本节点的xpath--但它们不是兄弟,它们的xpath关系可能会改变。
我使用祖先和后代是因为uniqueID和text以及uniqueID和$amount之间的元素数量发生了变化。
我的最佳猜测(这不起作用)://text()[contains(.,“$”)][祖先::div[1]//*[text()[contains(.,“uniqueText”)]][祖先::div[@id=“uniqueID”]]
我认为'div[1]'返回的是顶部的div,而不是uniqueText上面最接近的div
<div id="unique">
<div>
<h4></h4>
<div>
<div>
<div>
<span>
<span>
<span>uniqueText
</span>
</span>
</span>
<div>
<div>
<p>$xxx</p>
</div>
</div>
您的问题不完全清楚(html示例无效),但如果我正确理解了您的意思,并且您希望从文本开始并获得$amount,其中它们都位于最接近的公共 看看是否管用。标记中,那么在实际html上尝试这样做
div[@id="unique"]//span[contains(./text()[1],"uniqueText")]/ancestor::div[1]/div[contains(.//p/text(),"$")]//p/text()