2012-02-29 227 views
4

是否有可能编写一个XPath表达式,该节点集只具有对节点的引用来获取节点的根节点?XPath:从指定节点获取节点集的根节点

使用“/”不适用于我,因为它只涉及输入文档根。另外,我希望它在没有上下文的情况下工作,并将其用于可能在处理期间动态创建的通用节点集。

例如...

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

感谢您的帮助。

回答

7

在XPath 1.0使用

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

这将选择最远处当前节点的祖先的 - 这是它的文档节点。

在XPath 2.0使用

root(.) 
+0

谢谢Dimitre,我想有对XPath 2.0中一个简单的解决方案,只是不能在该文档中找到它。并为Xpath 1.0解决方案+1。 – ricosrealm 2012-02-29 21:35:56