After upgrading to XSLT 2.0 and Saxon 8, I discovered that the saxon:distinct
function was removed.
The variable $languages
looks like:
<language>English</language>
<language>Chinese</language>
<language>English</language>
<language>French</language>
<language>French</language>
It contains 5 language elements, but we only want to process the 3 distinct languages.
In the past, I used the saxon:distinct
function, specific to Saxon. Other XSL processors have their own functions.
<xsl:for-each select="saxon:distinct($languages/language)">
language found: <xsl:value-of select="."/>
</xsl:for-each>
For XSLT 2.0, the above can be replaced with:
<xsl:for-each select="distinct-values($languages/lang)">
<xsl:value-of select="."/>
</xsl:for-each>