Вот решение XSLT 2.0 - оно выполняет только одну сортировку !
Также может быть легко преобразовано в XSLT 1.0
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vDocEn" select="/"/>
<xsl:variable name="vDocBG">
<Lexicon>
<Title> Български </Title>
<Author> SafeSailor </Author>
<Words>
<Word> Кола </Word>
<Word> Програмиране </Word>
<Word> Пиши </Word>
<Word> Бягай </Word>
<Word> Пий </Word>
<Word> Картоф </Word>
<Word> Калина </Word>
<Word> Тегло </Word>
<Word> Група </Word>
<Word> Хора </Word>
</Words>
</Lexicon>
</xsl:variable>
<xsl:variable name="vCompositeWords" as="element()*">
<xsl:apply-templates select="$vDocEn/*/Words" mode="combine">
<xsl:with-param name="pWords2" select="$vDocBG/*/Words"/>
</xsl:apply-templates>
</xsl:variable>
<xsl:template match="/">
<ul>
<xsl:apply-templates select="$vCompositeWords"/>
</ul>
<ul>
<xsl:apply-templates select="$vCompositeWords/@translation"/>
</ul>
</xsl:template>
<xsl:template match="Words" mode="combine">
<xsl:param name="pWords2" as="element()"/>
<xsl:for-each select="Word">
<xsl:sort/>
<word translation="{$pWords2/Word[position() = count(current()/preceding-sibling::*)+1]}">
<xsl:value-of select="."/>
</word>
</xsl:for-each>
</xsl:template>
<xsl:template match="word | @translation">
<li><xsl:value-of select="."/></li>
</xsl:template>
</xsl:stylesheet>
Когда это преобразование применяется к предоставленному документу :
<Lexicon>
<Title> English </Title>
<Author> SafeSailor </Author>
<Words>
<Word> Car </Word>
<Word> Programming </Word>
<Word> Write </Word>
<Word> Run </Word>
<Word> Drink </Word>
<Word> Potato </Word>
<Word> Rowan-berry </Word>
<Word> Weight </Word>
<Word> Group </Word>
<Word> People </Word>
</Words>
</Lexicon>
Требуется правильный результат :
<ul>
<li> Car </li>
<li> Drink </li>
<li> Group </li>
<li> People </li>
<li> Potato </li>
<li> Programming </li>
<li> Rowan-berry </li>
<li> Run </li>
<li> Weight </li>
<li> Write </li>
</ul>
<ul>
<li> Кола </li>
<li> Пий </li>
<li> Група </li>
<li> Хора </li>
<li> Картоф </li>
<li> Програмиране </li>
<li> Калина </li>
<li> Бягай </li>
<li> Тегло </li>
<li> Пиши </li>
</ul>