XSL 1.0:以节点名称的特定开头计数节点

  • 本文关键字:节点 开头 XSL xslt xslt-1.0
  • 更新时间 :
  • 英文 :


我需要计算XML文件的节点数。所有的点头都以一个特定的字符('S')开头。我怎样才能数出所有以'S'开头的节点呢?

例如,我有这个文件

<root>
    <G_Group1>
        <S_DAS>
            <D_Name>Boot</D_Name>
            <D_Speed>10</D_Speed>
        </S_DAS>
        <S_GRU>
            <D_Name>Bike</D_Name>
            <D_Speed>3</D_Speed>
        </S_GRU>
        <G_HEL>
            <S_LOR>
                <D_Color1>Green</D_Color1>
                <D_Color2>Blue</D_Color2>
            </S_LOR>
        </G_HEL>
    </G_Group1>
    <G_Group2>
        <S_HUZ>
            <D_Name>Boot</D_Name>
            <D_Speed>10</D_Speed>
        </S_HUZ>
        <S_HUZ>
            <D_SPE>Bike</D_SPE>
        </S_HUZ>
        <S_LIL>
            <D_BER>Green</D_BER>
            <D_KLA>Blue</D_KLA>
        </S_LIL>
    </G_Group2>
</root>

在这种情况下,我将计数6。

S_DAS, S_GRU, S_LOR, S_HUZ, S_HUZ, S_LIL

有谁可以帮我吗?

提前感谢Florian

要统计名称以"S"开头的元素,可以使用:

count(//*[starts-with(name(), 'S')])

这样计数:

<xsl:template match="/">
   <xsl:value-of select="count(descendant::*[substring(name(),1,1)='S'])"/>
</xsl:template>

相关内容

  • 没有找到相关文章

最新更新