2011-10-31 67 views

Respuesta

39

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.

+0

¿En qué objeto tengo que llamar a current-date() ..? Estoy usando Jdk8. –

+0

current-date() es una función XPath 2.0. No requiere argumentos. Las funciones XPath no se llaman "en un objeto". –

+0

En java 'javax.xml.xpath.XPath' no tiene dicho método estático. ¿Eso significa que estoy usando la versión 1.0 ...? –

7

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.

5

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. 
0
<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> 
Cuestiones relacionadas