2016-05-04 2 views
0

У меня есть XSLT, я хочу, чтобы получить "сегодня + 10 лет в Millis"Java функция GetTime в XSLT

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()"/> 

не работает, как я могу это сделать?

ответ

1

Я думаю, что с 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.

Смежные вопросы