我最近刚开始使用 XPath 并遇到了问题。这是我要从中提取的代码:
<h3>Some Company</h3>
Mainstreet 1234
<br>
98776, Country
<br>
如何提取结束 h3 和 br 标记之间的内容?
我最近刚开始使用 XPath 并遇到了问题。这是我要从中提取的代码:
<h3>Some Company</h3>
Mainstreet 1234
<br>
98776, Country
<br>
如何提取结束 h3 和 br 标记之间的内容?
这可以工作h3/following-sibling::node()[not(preceding-sibling::br) and not(self::br)]
(为我返回“Mainstreet 1234”)。
但我担心您真正的 xml 和实际需求比提供的示例更复杂,因此您可能需要进一步调整它以满足您的要求。
如果您的代码在下面的块中:
<par>
<h3>Some Company</h3>
Mainstreet 1234
<br>
98776, Country
</br>
</par>
您需要告诉 XPath 在 h3 节点之后和 br 节点之前的每个 par 节点内为您提供文本。在 XPath 术语中,这转换为:
//par/text()[preceding::*[name()='h3'] and following::*[name()='br']]
以上将在文档中的任何地方搜索 par 节点。您还可以更具体地了解 h3 和/或 br 节点的内容:
//par/text()[preceding::*[name()='h3' and text()='Some Company'] and following::*[name()='br']]
如果以上方法不能解决您的问题,请告诉我。
尝试//h3/following-sibling::text()[following::br]