XPath兄弟节点提取

9

示例文档:

<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个回答

8

请使用此XPath:

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

0

试试这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接