カスタム XPath 関数内の XML データの取得
質問
独自のカスタム XPath 関数を作成するときに、現在の XML データを取得する方法はありますか (ここを参照)。
にアクセスできることは知っていますが、 XPathContext
しかし、これで十分ですか?
例:
私たちの XML:
<foo>
<bar>smang</bar>
<fizz>buzz</fizz>
</foo>
私たちのXSL:
<xsl:template match="/">
<xsl:value-of select="ourFunction()" />
</xsl:template>
XML ツリー全体を取得するにはどうすればよいでしょうか?
編集: 明確にするために:最終的に静的 Java コードを実行するカスタム関数を作成しています (これは Saxon の機能です)。したがって、この Java コードでは、XML ツリーから bar や fizz などの要素と、smang やuzz などの CDATA を取得できるようにしたいと考えています。
解決
「ourFunction(/)」を呼び出すように XSL を変更してみてください。これにより、ルート ノードが関数に渡されるはずです。を試してみることもできます。または ..
おそらく、実装する関数のシグネチャを変更する必要があるでしょう。それについては他の人に手伝ってもらいます。
他のヒント
どうですか 現在のノードを選択します 現在のノードから関連するデータを選択して XSL パラメーターに入れ、そのパラメーターを関数に渡しますか?のように:
<xsl:value-of select="ourFunction($data)" />
所属していません StackOverflow