me sale el siguiente error:Java/XSLT: No se puede encontrar una función 1-argumento a juego
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)
La parte superior de mi archivo XSLT es
<?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">
¿Sabes por qué me puede conseguir ¿este error?
ACTUALIZACIÓN
La parte superior de mi archivo XML lee ahora.
<?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">
y el XML donde estamos fallando es
<xsl:template name="test">
<xsl:param name="param" />
<xsl:value-of select="$param"/>
<xsl:value-of select="xalan:evaluate($param)"/>
</xsl:template>
Este código funciona en un servidor que ejecuta Tomcat 5.0, pero no funciona en un servidor con Tomcat 5.5. Me imagino porque el código está funcionando en un servidor y no es un problema ambiental.
El XSLT se está aplicando al XML a través de una página JSP. Para mí, parece que el archivo xalan.jar no se está utilizando. La parte superior de la página JSP es:
<%@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.*"%>
actualización El problema es que Saxon está siendo elegido como el analizador XML. Saxon no es compatible con esta funcionalidad. La eliminación de Saxon.jar corrige el problema.
Guau, oscuro :) bueno saberlo. Gracias por publicar la revisión +1 –