[英]XPath union operator and context
我有以下内容:
<xsl:for-each select="/ROOT_NODE/NODE_1/NODE_11/LOCALE[CO >= 8] |
NODE_2/NODE_22/OCA">
</xsl:for-each>
两个问题:
<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
之前NODE_2/NODE_22/OCA
,则将首先处理第一部分,否则将进行其他处理。
总的来说,依靠这种副作用并不是一个好主意。 您应该声明排序顺序( <xsl:sort>
),或者不要在不同事物的并集上进行迭代(使用两个连续的<xsl:for-each>
循环使输出顺序固定且明显)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.