有没有办法从另一个上下文中访问 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)
表达式“ /”选择包含上下文节点的树根处的文档节点。(1.0 中的所有树都以文档节点为根。)
在 XSLT 2.0 中,root()无论根是否为文档节点,都选择包含上下文节点的树的根。
即使上下文节点是不同树中的节点,要获取主要源文档的根,请绑定全局变量
<xsl:variable name="principal-root" select="/"/>
Run Code Online (Sandbox Code Playgroud)
您可以在任何地方将其称为$principal-root.
哦,正如 Mads Hansen 指出的那样,如果“根节点”实际上是指与文档节点不同的最外层元素节点,那么您通常会使用“ /*”。