我的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的前兄弟。
答案 0 :(得分:1)
鉴于您的XPath解释器支持XPath 2.0,使用intersects
有一个很好的解决方案:
//table/following-sibling::p
intersect
//p[data()='']/preceding-sibling::p
第一行提取表后的所有段落,第三行全部在空段落之前。交叉点是理想的结果。