我有一个代表日期的字符串,格式如下
2010-12-03 =“yyyy-mm-dd”
我想使用 XSLT 并找到一种方法来提取月份并获取其月份缩写。
转换后它应该显示为“ DEC ”,因为 12 月是第 12 个月。
谢谢!
您可以将其添加到您的 XSLT:
<xsl:variable name="months" select="' JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'" />
然后在任何需要月份缩写的地方使用:
substring($months, substring(date, 6, 2) * 3, 3)
wheredate
将是对您的节点的引用,其中包含日期。
这是一个简短的演示,如何智能高效地执行此操作:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:param name="pMonthNames">
<name><short>JAN</short>January</name>
<name><short>FEB</short>February</name>
<name><short>MAR</short>March</name>
<name><short>APR</short>April</name>
<name><short>MAY</short>May</name>
<name><short>JUN</short>June</name>
<name><short>JUL</short>July</name>
<name><short>AUG</short>August</name>
<name><short>SEP</short>September</name>
<name><short>OCT</short>October</name>
<name><short>NOV</short>November</name>
<name><short>DEC</short>December</name>
</xsl:param>
<xsl:variable name="vMonthNames" select=
"document('')/*/xsl:param[@name='pMonthNames']/*"/>
<xsl:template match="t">
<xsl:value-of select="$vMonthNames[position()=substring(current(),6,2)]/short"/>
</xsl:template>
</xsl:stylesheet>
当此转换应用于以下 XML 文档时:
<t>2010-12-03</t>
产生了想要的正确结果:
DEC