0

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

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

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

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

但是,这会导致错误,还有其他方法可以做到这一点吗?

提前致谢。

4

1 回答 1

1

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

是的,那是不可能的。

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

对于完全支持用户提供的 Java 函数的 XSLT 处理器,几乎可以肯定做到这一点。它也几乎肯定不是选择要处理的输入节点的最佳解决方案;很难想象在 Java 中比在 XSLT 中更容易的任何节点选择过程。

于 2013-08-14T19:44:04.043 回答