使用xslt查找父元素中当前元素的计数

使用xslt查找父元素中当前元素的计数,xslt,xslt-1.0,xslt-2.0,Xslt,Xslt 1.0,Xslt 2.0,我想找出我正在分析的当前元素的计数 当我的节点在当前元素中并且我也不知道元素名称时 我试过: <a> <b/> <b/> <c/> </a> 我预期的产出: <xsl:for-each select="a"> <counter localName="{local-name()}" count="{count(node()/*)}"/> </xsl:for-each> 这给出了一个

我想找出我正在分析的当前元素的计数 当我的节点在当前元素中并且我也不知道元素名称时

我试过:

<a>
  <b/>
  <b/>
  <c/>
</a>
我预期的产出:

<xsl:for-each select="a">
   <counter localName="{local-name()}" count="{count(node()/*)}"/>
</xsl:for-each>

这给出了一个错误的输出,我该如何实现它?

我猜您应该这样做:

 <counter localName="b" count="2"/>
 <counter localName="b" count="2"/>
 <counter localName="c" count="1"/>

尽管很明显,两个b节点加在一起除了巧合之外没有任何共同之处。

请添加一个您想要获得的示例-并选择xslt xslt-1.0或xslt-2.0,而不是两者。谢谢。我已经相应地回答了这个问题
<xsl:template match="/a">
    <root>
        <xsl:for-each select="*">
            <counter localName="{local-name()}" count="{count(../*[local-name()=local-name(current())])}"/>
        </xsl:for-each>
    </root>
</xsl:template>
<root>
  <counter localName="b" count="2"/>
  <counter localName="b" count="2"/>
  <counter localName="c" count="1"/>
</root>
<a>
  <b/>
  <ns1:b xmlns:b="http://example.com/b"/>
  <c/>
</a>