首页 文章

使用XPath立即选择相同元素的XML元素

提问于
浏览
1

给出以下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查找元素?或者可能有另一种没有兄弟姐妹的方法?

1 回答

  • 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相同 .

相关问题