Мне нужна функция XSLT, которая вернет мне xpath к узлу, из которого она вызывалась.
XML
<root>
<node>
<subnode />
<subnode />
<subnode />
</node>
<node>
<subnode>
<subsubnode >
<xsl:value-of select="fn:generateXPath()" />
</subsubnode >
</subnode>
</node>
</root>
XSL
<xsl:template match="root/node/subnode/sub" >
<xsl:value-of select="fn:generateXPath()" />
</xsl:template>
<xsl:function name="fn:generateXPath" >
<xsl:for-each select="ancestor::*">
<xsl:value-of select="name()" />
</xsl:for-each>
<xsl:value-of select="name()" />
</xsl:function>
Я пробовал использовать указанную выше функцию, но она выдает ошибку:
XPDY0002: Невозможно выбрать узел здесь: элемент контекста не определен
Но когда я попробовал это в именованном шаблоне, я смог получить результат. Можно ли это реализовать с помощью xslt:function
.