2011-10-31 16 views
24

Hangi XPATH ve XSLT sürümünü kullanıyorum ...? Hangi XPATH ve XSLT sürümünü kullanıyorum ..?

Ben XPATH hangi sürümünü sonra JDK 1.7 yüklemiş Say ve XSLT sahibim ..? XSLT'de

+1

yazdırır benim için Örneğin

java com.sun.org.apache.xalan.internal.xslt.EnvironmentCheck 

deneyin? Java'da birden fazla yol var. – LarsH

cevap

39

, system-property('xsl:version') diyoruz. 1.0 veya 2.0 işlemci kullanıp kullanmadığınıza bağlı olarak 1.0 veya 2.0 değerini döndürür.

XPath'da doğrudan eşdeğer yoktur. Ancak hızlı bir test, hiçbir argüman olmadan current-date()'u aramaktır. Bu başarılı olursa, bir 2.0 işlemciniz var, eğer başarısız olursa, bir 1.0 işlemciniz var.

Sınıf yolunuza veya onaylanan kitaplığa Saxon gibi bir 2.0 işlemci yüklemek için gerekli adımları alamadığınız sürece, JDK'nın verdiği XSLT işlemcisi (bugün) 1.0 işlemci olacaktır. Java kullanırsanız

+0

Hangi nesnede geçerli tarihi çağırmalıyım() ..? Jdk8 kullanıyorum. –

+0

current-date() bir XPath 2.0 işlevidir. Hiçbir argüman almaz. XPath işlevleri "bir nesnede" olarak adlandırılmaz. –

+0

java 'javax.xml.xpath.XPath'de böyle bir statik yöntem yok. Bu 1.0 sürümü kullanıyorum anlamına mı geliyor ..? –

7

Peki o zaman XSLT ve XPath işlemciler arasında seçim yapabilir. JDK'daki tek yerleşik (sadece 1.6'yı biliyorum ama 1.7'de değiştiğini düşünmüyorum) bir XSLT ve XPath 1.0 işlemcisi olan Apache Xalan. Ancak XSLT ve XPath 2.0'ı destekleyen Saxon 9 gibi üçüncü taraf çözümler var. Ayrıca, XPath 2.0, XQuery 1.0'ın bir alt kümesi olduğu için, Java için ek XQuery 1.0 uygulamaları vardır, XPath 2.0 ile ilgileniyorsanız daha fazla seçeneğiniz vardır.

5

bu nasıl XPath/XSLT çağırıyoruz

#---- 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>