次のコードスニペットでは、for-eachが3つありますが、1つに組み合わせることができるはずです。そのまま動作しますが、もっとエレガントな書き方を知っている人はいないでしょうか。
<xsl:for-each select="/essentials/webservice">
<xsl:for-each select="document(@filename)/productSearchResponse/products/product">
<xsl:sort select="producingRegion" order="ascending"/>
<xsl:for-each select="producingRegion[not(preceding::producingRegion=.)]">
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>