我需要计算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>