我需要一个帮助,如何在XSLT转换发生时获得以下详细信息
均采用UTC格式 - 样本格式 - 2015-12-02T09:41:56Z
我试过以下方法
1.获取当前日期时间但有以下问题
第1期
我不知道XSLT是如何执行的 - 谷歌搜索找出来
<xsl:value-of select="ex:date-time()"/>
第2期 我得到以下格式的输出 2015-12-02T16:08:19 + 05:1800000 - 致力于更正格式。
注意我没有通过命令行运行XSLT的选项。
源XML
` <?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<xsltExecutionStartTime/>
</book>
<book>
<xsltExecutionEndTime/>
</book>
</books>`
XSLT
`<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="http://xml.apache.org/xslt/java"
exclude-result-prefixes="java" xmlns:ex="http://exslt.org/dates-and-times" extension-element-prefixes="ex" >
<xsl:output method="xml" version="4.0" encoding="utf-8" indent="yes"/>
<xsl:variable name="startTime" select="ex:date-time()"/>
<xsl:template match = "/">
<xsltExecutionStartTime><xsl:value-of select="$startTime"/></xsltExecutionStartTime>
<xsltExecutionEndTime><xsl:value-of select="$endTime"/></xsltExecutionEndTime>
</xsl:template>
<xsl:variable name="endTime" select="ex:date-time()"/>
</xsl:stylesheet> `
预期产出
`<?xml version="4.0" encoding="utf-8"?>
<xsltExecutionStartTime>2015-12-02T09:41:56Z</xsltExecutionStartTime>
<xsltExecutionEndTime>2015-12-02T09:41:56Z</xsltExecutionEndTime>
`但我想说的是,我实际上不知道XSLT处理器如何转换XML。即执行的起点和执行的终点。哎呀
谢谢 问候 -Brijesh
答案 0 :(得分:0)
在一般情况下,您无法假设xslt-rules的执行顺序。如果您尝试首先在模板匹配/中调用date-time()函数,并在这两个语句之间处理文档的其余部分,您可能会获得所需的结果,但处理器也可能通过提供同一时间两次。
例如(未经测试):
<xsl:template match = "/">
<xsltExecutionStartTime><xsl:value-of select="ex:date-time()"/></xsltExecutionStartTime>
<xsl:apply-templates select="*" />
<xsltExecutionEndTime><xsl:value-of select="ex:date-time()"/></xsltExecutionEndTime>
</xsl:template>