xslt中的java函数getTime

标签 java xml xslt

我有一个 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-namespace 处的文档请注意,其他 XSLT 处理器实现可能具有不同的调用 Java 的机制。

关于xslt中的java函数getTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027547/

相关文章:

java swing图像路径

java - 如何使用外部类实现 ActionListener?

java - 在不超过字符串长度的情况下获取子字符串的最有效方法

xml - 访问多个源的同名元素

xslt - 优化<xsl :apply-templates/> for a set of tags

java - 有符号字节奇怪行为的位移位

java - 默认 XML 元素

python - xml.etree.ElementTree iterparse() 仍在使用大量内存?

java - 通过 Java 从示例 XML 创建 SOAP 消息

xml - 使用 xslt 样式表将 xml 文档转换为逗号分隔 (CSV) 文件