Переменная в XSLT не сохраняет порядок элементов
Я пытаюсь выполнить xsl шаблон с помощью libxslt, но получаю совсем неинтуитивный вывод. У меня есть такая XML:
<ancestor0>
<ancestor1>
<ancestor2>
<node1></node1>
</ancestor2>
</ancestor1>
</ancestor0>
Такая XSL:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="node1">
<xsl:variable name="save" select="./ancestor::*"/>
<xsl:value-of select="name($save[1])"/>
</xsl:template>
</xsl:stylesheet>
При выполнении я расчитываю увидеть ancestor2, но выводится ancestor0. Что интересно, если этот же шаблон выполнить с помощью MSXML, то выведется ancestor2. Есть ли возможность сохранять в переменной элементы в обратном порядке?