我需要计算XML文件中具有特定值的元素的数量(以验证唯一性)。XML文件如下所示:
XML :XML用一些人设计的乱七八糟的东西更新了原始的“简化的”。不幸的是,除非经过编辑,否则这将使之前所有的答案变得非常混乱和错误。
<root>
<ac>
<Properties>
<Property Name="Alive">
<Properties>
<Property Name="ID">
<Properties>
<Property Name="Value">
<long>11007</long>
</Property>
</Properties>
</Property>
</Properties>
</Property>
<Property Name="Dead">
<Properties>
<Property Name="ID">
<Properties>
<Property Name="Value">
<long>11008</long>
</Property>
</Properties>
</Property>
</Properties>
</Property>
...
<Property Name="MostlyDeadAllDay">
<Properties>
<Property Name="ID">
<Properties>
<Property Name="Value">
<long>99001</long>
</Property>
</Properties>
</Property>
</Properties>
</Property>
</Properties>
</ac>
</root>
我正在尝试定义一个变量,以查看在模板参数中定义的Alive/Dead级别的属性中有多少具有长值(ID)。一些类似的东西(尽管我怀疑这是错误的)。
<xsl:param name="parPropId"/>
<xsl:variable name="countProperties">
<xsl:value-of select="count(/root/ac/
Properties/Property/
Properties/Property[@Name = 'ID']/
Properites/Property[@Name = 'Value']/long = $parPropId)"/>
</xsl:variable>
可以在"ID“级别定义多个属性元素。但我相当确定我可以在"ID“下只有一个属性元素( "Value”),在“Value”下只有一个"long“元素。
免责声明无论是谁设计了我一直在使用的整个XML文件,他真的不知道如何构造XML (例如,反向使用属性而不是元素)。我担心我的XSLT思维暂时被扭曲了:)结果是。/disclaimer
https://stackoverflow.com/questions/721963
复制相似问题