Javax XSLT转换器setParameter()不适用于自定义类型

时间:2016-12-15 08:56:13

标签: java xslt xalan

我在Java中有一个非常简单的XSLT转换器:

this.transformer = TransformerFactory.newInstance().newTransformer(xsltTransformerSource);
this.transformer.setParameter("testobject", new MyClass());

这是我的XSLT:

<xsl:stylesheet
        version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:myclass="com.mycompany.MyClass">

    <xsl:param name="testobject" />
    <xsl:template match="/">
        <html>
            <p><xsl:value-of select="myclass:myMethod($testobject)"/></p>
        </html>
    </xsl:template>
</xsl:stylesheet>

此转换失败并显示错误:

javax.xml.transform.TransformerConfigurationException: Cannot find external method 'com.myCompany.MyClass.myMethod' (must be public).

但是,当我在XSLT中实例化一个MyClass时,它可以工作!

<p><xsl:value-of select="myclass:myMethod(myclass:new())"/></p>

我也可以毫无问题地传递字符串参数。我在做什么有什么不对吗?知道如何让它运作吗?

我正在使用Xalan来转换xslt

0 个答案:

没有答案