使用しているXPATHとXSLTのバージョンを知る方法...?
JDK 1.7をインストールしたとすると、XPATHとXSLTのどのバージョンがありますか?
XSLTで、system-property('xsl:version')
を呼び出します。 1.0または2.0プロセッサを使用しているかどうかに応じて、1.0または2.0が返されます。
XPathには、直接同等のものはありません。しかし、簡単なテストは、引数なしでcurrent-date()
を呼び出すことです。これが成功した場合は2.0プロセッサ、失敗した場合は1.0プロセッサです。
Saxonなどの2.0プロセッサをクラスパスまたは承認されたライブラリにインストールする手順を実行しない限り、JDKが提供するXSLTプロセッサは(今日)1.0プロセッサになります。
Javaを使用する場合は、XSLTプロセッサとXPathプロセッサを選択できます。JDKに組み込まれているプロセッサ(1.6しか知らないが、1.7では変更されていないと思います) )は、XSLTおよびXPath1.0プロセッサであるApacheXalanです。ただし、XSLTおよびXPath 2.0をサポートする Saxon 9 のようなサードパーティソリューションがあります。XPath2.0のように、Java用の追加のXQuery1.0実装も確かにあります。 XQuery 1.0のサブセットであり、XPath 2.0に関心がある場合は、さらに選択肢があります。
試してみてください
Java com.Sun.org.Apache.xalan.internal.xslt.EnvironmentCheck
たとえば私にとってこれは
#---- 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>