xslt - XPath:从指定节点获取节点集的根节点

标签 xslt xpath xpath-2.0

是否可以编写一个 XPath 表达式来获取节点集中节点的根节点,并且只引用该节点?

使用“/”对我不起作用,因为它仅指输入文档根目录。此外,我希望它在没有上下文的情况下工作,并将其用于可能在处理过程中动态创建的通用节点集。

例如...

<xsl:function name="my:getRoot">
    <xsl:param name="n" />
    <xsl:variable name="rootnode" select="some_solution($n)"/>
</xsl:function>

谢谢您的帮助。

最佳答案

在 XPath 1.0 中使用 :

ancestor-or-self::node()[last()]

这将选择当前节点最远的祖先——也就是它的文档节点。

在 XPath 2.0 中使用 :
 root(.)

关于xslt - XPath:从指定节点获取节点集的根节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506805/

相关文章:

XSLT 创建具有相同 ID 和名称的多个记录

xml - 使用带有变量的 XSL include 语句

Java XSLT 转换器异常 : Could not find function: exists

selenium - 在使用相同的 xpath 定位元素时获取 InvalidSelectorException,该 xpath 在具有 1 个匹配节点的 firepath 中运行良好

java - Selenium 无法通过 xpath 找到元素

xpath - 在SOAP UI中声明的Xpath表达式:如何处理节点值(例如Abc的作品)的撇号等特殊符号

XQuery:除最后一个元素外,如何在序列后添加逗号

xml - XSD 的架构?

xml - XQuery 不同的 XML 标记

shell - 有没有办法在 XPath 中将字符串分割成固定宽度的 block ?