如何使用xpath选择没有特定属性的两个标记之间的标记

时间:2013-01-28 09:12:11

标签: xml xslt xpath

我的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的前兄弟。

1 个答案:

答案 0 :(得分:1)

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

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

第一行提取表后的所有段落,第三行全部在空段落之前。交叉点是理想的结果。