0

我的 xml 看起来像这样:

<p>text</p>
<p>text</p>

<table>
<!--some tr and td's-->
</table>
<p><sup>a</sup> text</p>
<p><sup>b</sup> text</p>
<p><sup>c</sup> text</p>
<p></p>

<table>
<!--some tr and td's-->
</table>
<p><sup>a</sup> text</p>
<p><sup>b</sup> text</p>

<p>text</p>

我需要选择 p 标签,它们是第一个表的后续兄弟和空 p 的前兄弟。

4

1 回答 1

1

鉴于您的 XPath 解释器支持 XPath 2.0,有一个很好的解决方案intersects

//table/following-sibling::p
    intersect
//p[data()='']/preceding-sibling::p

第一行获取表格之后的所有段落,第三行获取空段落之前的所有段落。交集是期望的结果。

于 2013-01-28T10:22:13.553 回答