给出以下XML片段:
<?xml version="1.0" encoding="UTF-8"?>
<RootNode>
<PR1>PR1</PR1>
<ROL>one</ROL>*
<ROL>two</ROL>*
<DG1>DG1</DG1>
<ROL>three</ROL>
<ZBK>ZBK</ZBK>
<ROL>four</ROL>
</RootNode>
是否可以选择PR1元素后面的两个ROL元素(标有星号的元素)和XPath表达式,而不是其他ROL元素?我试过了
//PR1/following-sibling::ROL
但这也会获得其他ROL细分。有没有办法在第一次非匹配命中后阻止XPath查找元素?或者也许还有另一种方法没有跟随兄弟姐妹?
答案 0 :(得分:2)
我认为答案更像是这样:
<xsl:value-of select="//PR1[1]/following-sibling::ROL[
generate-id( preceding-sibling::*[name() != 'ROL'][1])= generate-id(//PR1[1])
]" />
找到第一个PR1的以下兄弟ROL,其中
previous-sibling(不是ROL)与第一个PR1相同。