XPath兄弟提取

时间:2012-07-12 22:20:33

标签: xml xpath

示例文件:

<h4 class="bla">July 12</h4>
<p>Tim</p>
<p>Jon</p>
<h4 class="bla">July 13</h4>
<p>James</p>
<p>Eric</p>
<p>Jerry</p>
<p>Susie</p>
<h4 class="date">July 14</h4>
<p>Kami</p>
<p>Darryl</p>

我想要做的是抓住7月13日发布的所有 p 节点。请注意,他们是 h4 的兄弟,而不是孩子。所以在这个例子中,我想得到具有以下名称的 p 节点:James,Eric,Jerry和Susie。

我接近以下内容,但它选择了7月13日 h4 节点之后的所有 p 节点,因为它们都是兄弟姐妹。换句话说,它没有停止条件。

//h4[string() = 'July 13']/following-sibling::p

2 个答案:

答案 0 :(得分:8)

使用此XPath:

//p[preceding-sibling::h4[1][. = 'July 13']]

答案 1 :(得分:0)

试试这个:

//p[preceding-sibling::h4/text() = 'July 13' and following-sibling::h4/text() = 'July 14']