XSL兄弟计数

时间:2017-10-12 23:56:13

标签: xml xslt xpath

如何获取给定XML中节点的相对位置。我只想考虑" b"节点在" a"节点不在x-> y - > b,我得到的数字是1,2,3,4而不是3,4,5,6。我试过"多个"和"任何"在xsl:number但不起作用。

   <x>
     <y>
       <b></b>
       <b></b>
     </y>
   </x>
   <a>
      <b></b>
      <b></b>
   </a>
   <a>
     <b></b>
     <b></b>
   </a>

<xsl:for-each select="a">
            <dummy>
            <xsl:for-each select="b">
                <xsl:variable name="pos" select="position()" />
                <dummy2><xsl:number level="any"/></dummy2>
            </xsl:for-each>
           </dummmy>
</xsl:for-each>

我希望dummy2有1,2,3,4个值。

<dummy>
    <dummy2>1<dummy2>
    <dummy2>2<dummy2>
</dummmy>
<dummy>
    <dummy2>3<dummy2>
    <dummy2>4<dummy2>
</dummmy>

2 个答案:

答案 0 :(得分:3)

您仍然可以使用xsl:number执行此操作。

试试这个......

<dummy2><xsl:number level="any" count="b[parent::a]" /></dummy2>

或许这......

<dummy2><xsl:number level="any" count="a/b" /></dummy2>

答案 1 :(得分:0)

试试这个:

{{1}}