我有以下内容:
<xsl:for-each select="/ROOT_NODE/NODE_1/NODE_11/LOCALE[CO >= 8] |
NODE_2/NODE_22/OCA">
</xsl:for-each>
两个问题:
<xsl:for-each>
内的上下文节点是什么?答案 0 :(得分:6)
XPath中的上下文节点是
/
开头)在您的情况下,XPath联合的第二部分的上下文将是<xsl:for-each>
之前的当前节点。
在for-each中,上下文节点切换到正在迭代的每个节点。
对于XPath联合的结果,文档顺序是相关的。如果/ROOT_NODE/NODE_1/NODE_11/LOCALE[CO >= 8]
出现在文档中NODE_2/NODE_22/OCA
之前,那么第一部分将首先处理,否则反过来。
但总的来说,依靠这种副作用并不是一个好主意。您应该声明排序顺序(<xsl:sort>
),或者不迭代不同事物的并集(使用两个连续的<xsl:for-each>
循环使输出顺序固定和明显)。