Java / XSLT:找不到匹配的1参数函数

我收到以下错误:

javax.servlet.ServletException: Cannot find a matching 1-argument function named {http://exslt.org/dynamic}evaluate()

at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)

at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)

我的xslt文件的顶部是

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0"

xmlns:dyn="http://exslt.org/dynamic"

extension-element-prefixes="dyn">

您知道我为什么会收到此错误吗?

现在,我的XML文件的顶部开始读取。

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0"

xmlns:xalan="http://xml.apache.org/xalan"

exclude-result-prefixes="xalan">

而我们失败的XML是

<xsl:template name="test">

<xsl:param name="param" />

<xsl:value-of select="$param"/>

<xsl:value-of select="xalan:evaluate($param)"/>

</xsl:template>

此代码可在运行Tomcat 5.0的一台服务器上运行,但不能在运行Tomcat 5.5的服务器上运行。我想像是因为代码正在一台服务器上工作,而不是环境问题。

XSLT正在通过JSP页面应用于XML。在我看来,xalan.jar文件未被使用。JSP的顶部是:

<%@page import="javax.xml.transform.*"%>

<%@page import="javax.xml.transform.stream.*"%>

<%@page import=" java.security.Principal,

java.net.URL,

java.net.URLConnection,

java.io.InputStream,

java.io.InputStreamReader,

java.io.Reader,

java.io.BufferedReader,

java.io.File,

javax.xml.transform.*,

javax.xml.transform.stream.*,

javax.xml.transform.*,

javax.xml.transform.stream.*"%>

问题是Saxon被选择为XML解析器。撒克逊人不支持此功能。删除Saxon.jar可以解决此问题。

回答:

在XSLT中的某处,您引用的是一个名为“ {{ http://exslt.org/dynamic }

evaluate()”的函数,但没有提供期望的参数数量。

或者…找不到您要添加的扩展名。

以上是 Java / XSLT:找不到匹配的1参数函数 的全部内容, 来源链接: utcz.com/qa/408994.html

回到顶部