Метод Мюнхена использует ключи для создания уникального списка элементов из набора узлов. Для ваших данных ключ будет выглядеть так:
<!-- Set the name to whatever you want -->
<xsl:key name="PeopleAges" match="/doc/class/person/descriptive[@name = 'age']/value" use="." />
Оттуда я лично использовал бы xsl:apply-templates
, но вы можете использовать следующий атрибут select
в других местах:
<!-- you can change `apply-templates` to: `copy-of` or `for-each`. -->
<xsl:apply-templates select="/doc/class/person/descriptive[@name = 'age']/value[count(. | key('PeopleAges', .)[1]) = 1]" />
Сопоставление с вышеперечисленным намного проще:
<xsl:template match="person/descriptive[@name = 'age']/value">
<strong>Age: </strong><xsl:value-of select="." />
</xsl:template>