我刚刚开始学习XSLT,并希望转换一些XML时间和日期数据,以便完全拼写出来。虽然我已经看到了将日期信息输出为单词(12到12月)的方法,但我没有看到任何允许转换时间(6:30到6:30)或年份(2005年到2005年)的内容
有没有一些标准的方法呢?如果不可行(如果很长)使用xsl这样做:if?我可以将输入限制为四分之一小时。
今年怎么样?
答案 0 :(得分:2)
在XSLT 2.0中,您可以使用the format-date(), format-time() and format-dateTime() functions以各种方式格式化日期和时间,例如:
<强> XML 强>
<input>2014-04-30T15:45:12</input>
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<output>
<xsl:value-of select="format-dateTime(input,
'The [DWwo] Day of [MNn] in the Year [YWw], at [hWw] Hours and [mWv] Minutes [PN]'
)" />
</output>
</xsl:template>
</xsl:stylesheet>
<强>结果强>
<?xml version="1.0" encoding="UTF-8"?>
<output>The Thirtieth Day of April in the Year Two Thousand and Fourteen, at Three Hours and Forty Five Minutes P.M.</output>
答案 1 :(得分:0)
有人可能写了一些有用的东西,并会在这里发布一个链接,但同时一个快速而肮脏的解决方案可能是:
<xsl:choose>
<xsl:when test='hour = 1'>
one
</xsl:when>
<xsl:when test='hour = 2>
two
</xsl:when>
...
</xsl:choose>
日期/时间提取功能在这里: http://www.w3schools.com/xpath/xpath_functions.asp#datetime