Чтобы сделать это в XSLT1.0, вы можете использовать технику, называемую группировкой Meunchian.Сначала вы определяете ключ для поиска элементов fruit на основе значения
<xsl:key name="fruit" match="fruit" use="." />
Затем, чтобы получить уникальные названия фруктов, вы выбираете fruit элементы, которые оказываются первыми фруктовыми элементами в ключе (и для проверки одинаковы два узла используется метод generate-id ())
<xsl:apply-templates
select="//fruit[generate-id() = generate-id(key('fruit', .)[1])]" />
Вот полный XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:key name="fruit" match="fruit" use="." />
<xsl:template match="/">
<xsl:apply-templates
select="//fruit[generate-id() = generate-id(key('fruit', .)[1])]" />
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
При применении к вашему образцу XML выводится следующее:
<fruit>apple</fruit>
<fruit>Orange</fruit>
<fruit>mango</fruit>