2011-10-31 4 views

Trả lời

39

Trong XSLT, hãy gọi system-property('xsl:version'). Nó sẽ trả về 1.0 hoặc 2.0 tùy thuộc vào việc bạn đang sử dụng bộ xử lý 1.0 hay 2.0.

Trong XPath, không có tương đương trực tiếp. Nhưng một thử nghiệm nhanh là gọi current-date() mà không có đối số. Nếu thành công, bạn có bộ xử lý 2.0, nếu không thành công, bạn có bộ xử lý 1.0. Trừ khi bạn thực hiện các bước để cài đặt bộ vi xử lý 2.0 như Saxon trên đường dẫn lớp hoặc trong thư viện xác nhận, bộ xử lý XSLT mà JDK cung cấp cho bạn sẽ (hôm nay) là bộ xử lý 1.0.

+0

Đối tượng nào tôi phải gọi hiện tại() ..? Tôi đang sử dụng Jdk8. –

+0

current-date() là một hàm XPath 2.0. Nó không có đối số. Các hàm XPath không được gọi là "trên một đối tượng". –

+0

Trong java 'javax.xml.xpath.XPath' không có phương thức tĩnh như vậy. Điều đó có nghĩa là tôi đang sử dụng phiên bản 1.0 ..? –

7

Vâng, nếu bạn sử dụng Java thì bạn có lựa chọn bộ xử lý XSLT và XPath. Cái được xây dựng trong JDK (tôi chỉ biết 1.6 nhưng tôi không nghĩ nó đã thay đổi trong 1.7) là Apache Xalan, đó là một bộ xử lý XSLT và XPath 1.0. Tuy nhiên, có các giải pháp của bên thứ ba như Saxon 9 hỗ trợ XSLT và XPath 2.0. Và chắc chắn có thêm các bản cài đặt XQuery 1.0 cho Java, vì XPath 2.0 là một tập con của XQuery 1.0, bạn có nhiều lựa chọn hơn nếu bạn quan tâm đến XPath 2.0.

5

Hãy thử

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

Ví dụ đối với tôi đây in

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