在XSLT中,我想将XML文档转换为另一个XML文档.旧文档有一些不太容易使用的日期和时间.例如:
<foo date="20110310" time="002000" duration="001500"/>
Run Code Online (Sandbox Code Playgroud)
现在我提取了所有信息,并能够将这些信息转换为ISO 8601日期:
<xsl:variable name="begin" select='concat($begin_date_year, "-", $begin_date_month, "-", $begin_date_day, "T", $begin_time_hour, ":", $begin_time_minutes, ":", $begin_time_seconds)'/>
--> $begin = 2011-03-10T00:20:00
Run Code Online (Sandbox Code Playgroud)
并持续时间:
<xsl:variable name="duration" select='concat("PT", $dur_hour, ":", $dur_minutes, ":", $dur_seconds)'/>
--> $duration = PT00:15:00
Run Code Online (Sandbox Code Playgroud)
如何将持续时间添加到DateTime以查找结尾(以DateTime格式)?
我已经考虑过添加单个组件,但是这会涉及大量摆弄模数,例如,如果我在23:50添加15分钟然后必须相应地调整日期等.
我需要在变量中定义的给定日期之前和之后3天获取,并将它们中的每一个存储在xsl 1.0中的新单个变量中.我不能使用任何扩展或第三方工具.
通过论坛中的答案,我发现:在XSLT 1.0中扩展日期时间范围以 解决类似的问题,但我不完全理解它是否以及如何适用于我的代码.
Mi日期变量采用标准的dateTime格式,如下所示:
<xsl:variable name="Date" select="2014-05-13T00:00:00"/>
Run Code Online (Sandbox Code Playgroud)
我需要输出类似于此的html:
<table>
<tr>
<td>
2014-05-10
<td>
</tr>
<!---some rows with pricing information -->
</table>
<table>
<tr>
<td>
2014-05-11
<td>
</tr>
<!---some rows with pricing information -->
</table>
<table>
<tr>
<td>
2014-05-12
<td>
</tr>
<!---some rows with pricing information -->
</table>
<!-- etc -->
Run Code Online (Sandbox Code Playgroud)
在具有定价信息的行中,我将必须使用每个单独的日期来执行其他操作,因此每天必须存储在变量中以供进一步使用.
有没有办法实现这一点,只使用xslt 1.0?
提前致谢.