Если у вас большой документ, вы, вероятно, захотите использовать «метод Мюнхена», который обычно используется для группировки, чтобы идентифицировать отдельные узлы. Объявите ключ, который индексирует вещи, которые вы хотите посчитать, по значениям, которые различаются:
<xsl:key name="artists-by-country" match="Artist_by_Country" use="Country" />
Затем вы можете получить элементы <Artist_by_Country>
, которые имеют разные страны, используя:
/Artists_by_Countries
/Artist_by_Country
[generate-id(.) =
generate-id(key('artists-by-country', Country)[1])]
и вы можете сосчитать их, заключив это в вызов функции count()
.
Конечно, в XSLT 2.0 это так же просто, как
count(distinct-values(/Artists_by_Countries/Artist_by_Country/Country))