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