Вы можете использовать технику под названием Muenchian Grouping , чтобы сделать это в XSLT 1.0 (поскольку это включает получение первого элемента для каждого отдельного значения, чтобы получить «группы»).
Начните с определения ключа следующим образом:
<xsl:key name="items" match="item" use="." />
И чтобы получить отдельные предметы, сделайте это ...
<xsl:copy-of select="//item[generate-id() = generate-id(key('items', .)[1])]" />
Попробуйте это XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:key name="items" match="item" use="." />
<xsl:template match="/">
<result>
<xsl:copy-of select="//item[generate-id() = generate-id(key('items', .)[1])]" />
</result>
</xsl:template>
</xsl:stylesheet>