xslt中的java函数getTime



我有一个xslt,我想获得"今天+10年"

    Date today = new Date();
    Date tenYears = new Date(today.getTime() + 1000*3600*24*365*10);

现在我想在xslt:中使用这个

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:java="java"> 
<xsl:output method="xml" indent="yes"/>
 <xsl:template match="/">
   <value><xsl:value-of select="java:util.Date.new()"/></value>
</xsl:template>

线路

<xsl:value-of select="java:util.Date.new()"/>

有效,但当我尝试时

<xsl:value-of select="java:util.Date.new().getTime()"/>

失败,我该怎么做?

我认为使用Xalan可以使用

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <value>
            <xsl:variable name="today" select="java:java.util.Date.new()"/>
            <xsl:variable name="tenYears"
                select="java:java.util.Date.new(java:getTime($today) + 1000 * 3600 * 24 * 365 * 10)"/>
            <xsl:value-of select="$tenYears"/>
        </value>
    </xsl:template>
</xsl:stylesheet>

请参阅上的文档http://xml.apache.org/xalan-j/extensions.html#java-命名空间,并注意其他XSLT处理器实现可能具有不同的调用Java的机制。

最新更新