繁体   English   中英

XPath联合运算符和上下文

[英]XPath union operator and context

我有以下内容:

    <xsl:for-each select="/ROOT_NODE/NODE_1/NODE_11/LOCALE[CO &gt;= 8] | 
NODE_2/NODE_22/OCA">

    </xsl:for-each>

两个问题:

  1. 我需要确认相对于上面的/ ROOT_NODE树,NODE_2的上下文是什么。 我在想/ ROOT_NODE / NODE_1 / NODE_11 / NODE_2。 这个对吗?
  2. <xsl:for-each>内的上下文节点是什么?

XPath中的上下文节点是

  • XPath表达式为绝对值时(以/开头)的根节点
  • 或当前XSLT节点(当表达式是相对的时)

在您的情况下,XPath联合的第二部分的上下文将是<xsl:for-each>之前的当前节点。

在for-each中,上下文节点切换到正在迭代的每个节点。

对于XPath联合的结果,文档顺序是相关的。 如果/ROOT_NODE/NODE_1/NODE_11/LOCALE[CO &gt;= 8]在文档中的NODE_2/NODE_22/OCA之前NODE_2/NODE_22/OCA ,则将首先处理第一部分,否则将进行其他处理。

总的来说,依靠这种副作用并不是一个好主意。 您应该声明排序顺序( <xsl:sort> ),或者不要在不同事物的并集上进行迭代(使用两个连续的<xsl:for-each>循环使输出顺序固定明显)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM