我需要计算 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”级别可以定义多个 Property 元素。但我相当肯定我只能指望“ID”下的一个 Property 元素(“Value”),以及“Value”下的一个“long”元素。
[免责声明] 设计整个 XML 文件的人确实不知道如何构建 XML(例如,向后使用属性与元素)。我担心我的 XSLT 想法因此暂时被扭曲了 :)。[/免责声明]