以下样式表:
TypeToken
输出:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" exclude-result-prefixes="#all"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="xml" indent="yes"/>
<xsl:template name="main">
<xsl:variable name="a">
<a/>
</xsl:variable>
<xsl:variable name="b">
<b/>
</xsl:variable>
<for-each1>
<xsl:for-each select="reverse(($a, $b))">
<xsl:copy-of select="."/>
</xsl:for-each>
</for-each1>
<for-each2>
<xsl:for-each select="reverse(($a, $b))/*">
<xsl:copy-of select="."/>
</xsl:for-each>
</for-each2>
</xsl:template>
</xsl:stylesheet>
我使用的是Saxon 9.6.0.6。
答案 0 :(得分:0)
从Michael Kay获得答案:
使用“/”运算符的表达式的结果被排序 文件订单。
单独树中节点之间的文档顺序是 依赖于实现,因此$ a可能在$ b之前或之后出现 取决于实施。
解决方法是使用for
映射:
for $n in reverse(($a, $b)) return $n/*