特定の値を持つ 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>
変数を定義して、テンプレート パラメーターで定義された long 値 (ID) を持つ Alive/Dead レベルのプロパティの数を確認しようとしています。これらの線に沿った何か(これは間違っていると思いますが)...
<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」) は 1 つだけであり、「Value」の下の「長い」要素は 1 つだけであると確信しています。
[免責事項] 私が立ち往生している XML ファイル全体を設計した人は、XML を構造化する方法を本当に知りませんでした (たとえば、属性と要素を逆に使用するなど)。結果として、私の XSLT の考え方が一時的に歪められているのではないかと心配しています :)。[/免責事項]