使用XPath在两个标记之间提取内容

时间:2013-08-13 11:05:25

标签: xpath

我刚刚开始使用XPath并遇到问题。这是我想要提取的代码:

 <h3>Some Company</h3>
    Mainstreet 1234
 <br>
    98776, Country
 <br>

如何在结束h3和br标签之间提取内容?

3 个答案:

答案 0 :(得分:2)

这可能有效h3/following-sibling::node()[not(preceding-sibling::br) and not(self::br)](对我来说,返回“Mainstreet 1234”)。

但是我很害怕你真正的xml和实际需求比提供的样本更复杂,所以你可能需要进一步调整它以满足你的要求。

答案 1 :(得分:1)

如果您的代码位于以下区域中:

<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']]

如果上述问题无法解决您的问题,请与我们联系。

答案 2 :(得分:0)

尝试//h3/following-sibling::text()[following::br]