XPath: получение корневого узла набора узлов из указанного узла - PullRequest
4 голосов
/ 01 марта 2012

Можно ли написать выражение XPath, которое получает корневой узел узла в наборе узлов только с ссылкой на узел?

Использование «/» для меня не подойдет, потому что это относится только к корню входного документа.Также я хотел бы, чтобы он работал без контекста и использовал его для общего набора узлов, который может динамически создаваться во время обработки.

Например ...

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

Спасибо запомощь.

1 Ответ

7 голосов
/ 01 марта 2012

В XPath 1.0 используйте :

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

Выбирает самого дальнего из предков текущего узла - его узла-документа.

В XPath 2.0 используйте :

 root(.)
...