¿Cómo saber qué versión de XPATH y XSLT estoy usando ...?¿Qué versión de XPATH y XSLT estoy usando ...?
Digamos que he instalado JDK 1.7, ¿qué versión de XPATH y XSLT tengo ..?
¿Cómo saber qué versión de XPATH y XSLT estoy usando ...?¿Qué versión de XPATH y XSLT estoy usando ...?
Digamos que he instalado JDK 1.7, ¿qué versión de XPATH y XSLT tengo ..?
En XSLT, llame al system-property('xsl:version')
. Devolverá 1.0 o 2.0 dependiendo de si está usando un procesador 1.0 o 2.0.
En XPath, no existe un equivalente directo. Pero una prueba rápida es llamar al current-date()
sin argumentos. Si esto tiene éxito, tienes un procesador 2.0, si falla, tienes un procesador 1.0.
A menos que tome medidas para instalar un procesador 2.0 como Saxon en su ruta de clases o en la biblioteca endosada, el procesador XSLT que le da el JDK será (hoy) un procesador 1.0.
¿En qué objeto tengo que llamar a current-date() ..? Estoy usando Jdk8. –
current-date() es una función XPath 2.0. No requiere argumentos. Las funciones XPath no se llaman "en un objeto". –
En java 'javax.xml.xpath.XPath' no tiene dicho método estático. ¿Eso significa que estoy usando la versión 1.0 ...? –
Bueno, si utiliza Java, puede elegir entre los procesadores XSLT y XPath. La incorporada en el JDK (solo sé de 1.6, pero no creo que haya cambiado en 1.7) es Apache Xalan, que es un procesador XSLT y XPath 1.0. Sin embargo, existen soluciones de terceros como Saxon 9 que admiten XSLT y XPath 2.0. Y ciertamente hay implementaciones adicionales de XQuery 1.0 para Java, ya que XPath 2.0 es un subconjunto de XQuery 1.0, tiene más opciones si está interesado en XPath 2.0.
Trate
java com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck
Por ejemplo, para mí esto imprime
#---- BEGIN writeEnvironmentReport($Revision: 1.10 $): Useful stuff found: ----
java.version=1.7.0_11
version.xalan2x=not-present
version.JAXP=1.4
java.ext.dirs=/usr/lib/jvm/java-7-oracle/jre/lib/ext:/usr/java/packages/lib/ext
version.SAX=2.0
version.crimson=not-present
java.class.path=.
version.ant=not-present
sun.boot.class.path=/usr/lib/jvm/java-7-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-7-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-7-oracle/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-7-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-7-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-7-oracle/jre/classes
version.DOM=3.0
version.xalan1=not-present
version.xalan2_2=Xalan Java 2.7.0
version.xerces2=Xerces-J 2.7.1
version.xerces1=not-present
#----- END writeEnvironmentReport: Useful properties found: -----
# YAHOO! Your environment seems to be OK.
<xsl:comment>
XSLT Version = <xsl:copy-of select="system-property('xsl:version')"/>
XSLT Vendor = <xsl:copy-of select="system-property('xsl:vendor')"/>
XSLT Vendor URL = <xsl:copy-of select="system-property('xsl:vendor-url')"/>
</xsl:comment>
¿Cómo estás invocando XPath/XSLT? Hay más de una forma en Java. – LarsH