Мне нужно подсчитать количество элементов в файле XML, которые имеют особое значение (для проверки уникальности). Файл XML выглядит следующим образом:
EDIT: Я обновил оригинальный "упрощенный" 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", и только один "длинный" элемент под "Значение".
(отказ) Тот, кто разработал общий файл XML, с которым я застрял, работая с REALLY, не знал, как структурировать XML (например, назад, использование атрибутов против элементов). Я боюсь, что мой XSLT мышления временно были деформированы :) в результате. (отказ)