如何知道我使用的是哪个版本的XPATH和XSLT?
说我已经安装了JDK 1.7然后我有哪个版本的XPATH和XSLT ..?
答案 0 :(得分:40)
在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处理器。
答案 1 :(得分:7)
如果您使用Java,那么您可以选择XSLT和XPath处理器。 JDK中内置的一个(我只知道1.6但我认为它在1.7中没有改变)是Apache Xalan,它是一个XSLT和XPath 1.0处理器。然而,像Saxon 9这样的第三方解决方案支持XSLT和XPath 2.0。当然还有其他针对Java的XQuery 1.0实现,因为XPath 2.0是XQuery 1.0的一个子集,如果您对XPath 2.0感兴趣,还有其他选择。
答案 2 :(得分:6)
尝试
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.
答案 3 :(得分:2)
<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>