如何从xsl:apply-templates在XSLT中调用外部java函数

时间:2013-08-14 15:59:22

标签: html xslt apache-fop

显然,不可能直接从xsl:apply-templates调用外部函数。我有一个包含html标签的XML节点,例如:

<text>
    <ul>
        <li>
            blablablaba
        </li>
    </ul>
<text>  

在我的输出中,如果我想要应用html标签,我需要使用xsl:apply-templates select =“text”/&gt;。我不能使用xsl:value-of,因为它不会考虑HTML。现在问题是我需要调用一个函数来转换html标签,所以我的代码将是:

<xsl:apply-templates select="util:myFunction(text)"/>

但是,这会导致错误,还有其他方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你要说的是:在XSLT需要一个评估为一组节点的XPath表达式的上下文中,似乎不可能对返回字符串的Java函数使用函数调用。

是的,那是不可能的。

如果要使用调用util:myFunction(text)来选择应该应用模板的节点,则需要该函数使用XSLT处理器使用的任何树表示来返回一组节点。

对于支持用户提供的Java功能的XSLT处理器来说,几乎可以肯定这样做。它几乎肯定不是选择输入节点进行处理的最佳解决方案;很难想象任何节点选择过程在Java中比在XSLT中更容易。