xslt:有没有办法引用根节点?

kit*_*lku 4 xslt xslt-1.0

有没有办法从另一个上下文中访问 ROOT 节点?

上面的例子只是为了表明我的意图。在不使用“../../..”的情况下访问 ROOT_NODE,因为 xml 中的更改可能会破坏该类型的选择器。

XSLT

<div class="column">
  <xsl:for-each select="languages/server/elem">
    <!-- Context is ELEM node -->
    <div>
      <!-- How can I get access to the ROOT_NODE ?-->
      <span class="text"><xsl:value-of select="ROOT_NODE/@title"/></span>
      <!-- Print ELEM text -->
      <span class="text"><xsl:value-of select="current()"/></span>
    </div>
  </xsl:for-each>
</div>
Run Code Online (Sandbox Code Playgroud)

Mic*_*Kay 5

表达式“ /”选择包含上下文节点的树根处的文档节点。(1.0 中的所有树都以文档节点为根。)

在 XSLT 2.0 中,root()无论根是否为文档节点,都选择包含上下文节点的树的根。

即使上下文节点是不同树中的节点,要获取主要源文档的根,请绑定全局变量

<xsl:variable name="principal-root" select="/"/>
Run Code Online (Sandbox Code Playgroud)

您可以在任何地方将其称为$principal-root.

哦,正如 Mads Hansen 指出的那样,如果“根节点”实际上是指与文档节点不同的最外层元素节点,那么您通常会使用“ /*”。