在自定义XPath函数中获取XML数据

时间:2020-03-05 18:55:09  来源:igfitidea点击:

当我们创建自己的自定义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,以及它们的CDATA,例如smang和buzz。

解决方案

回答

如何选择当前节点,将当前节点中的相关数据选择为XSL参数,然后将该参数传递给函数呢?喜欢:

<xsl:value-of select="ourFunction($data)" />

回答

尝试更改XSL,以便我们调用" ourFunction(/)"。那应该将根节点传递给函数。我们也可以尝试。或者 ..

我们可能需要更改实现功能的签名,我将让其他人。