XSLT Xp20 中的日期时间解析
DateTime Parsing in XSLT Xp20
我的日期字段如下
<Input>
<date>08/26/2020</date>
</Input>
我需要像下面这样解析它
<date>2020-08-26</date>
我尝试在 XSLT 中使用以下 xpath 函数,但没有产生任何结果
xp20:format-dateTime(/Input/date,'[Y0001]-[M01]-[D01]')
这里有什么帮助吗??
您可以做的是,提取子字符串,然后根据需要重新加入它们。
<date><xsl:value-of select="concat(substring-after(substring-after(date/text(),'/'),'/'), '-', substring-before(date/text(),'/'), '-', substring-before(substring-after(date/text(),'/'),'/'))" /></date>
或者最好为此使用模板:
<xsl:template name="format_date">
<xsl:param name="date" />
<xsl:value-of select="concat( substring($date, 7, 2),'.',substring($date, 5, 2), '.', substring($date, 1, 4), ', ', substring($date, 9, 2),':',substring($date, 11, 2),'h' )" />
</xsl:template>
并将日期作为参数传递 (with-param)。
这会给你想要的 <date>2020-08-26</date>
使用 replace
你可以重新排序组件,如果你想创建一个 XSLT/XPath xs:date
,另外使用构造函数:
<xsl:template match="date">
<xsl:copy>
<xsl:value-of select="xs:date(replace(., '([0-9]{2})/([0-9]{2})/([0-9]{4})', '--'))"/>
</xsl:copy>
</xsl:template>
我的日期字段如下
<Input>
<date>08/26/2020</date>
</Input>
我需要像下面这样解析它
<date>2020-08-26</date>
我尝试在 XSLT 中使用以下 xpath 函数,但没有产生任何结果
xp20:format-dateTime(/Input/date,'[Y0001]-[M01]-[D01]')
这里有什么帮助吗??
您可以做的是,提取子字符串,然后根据需要重新加入它们。
<date><xsl:value-of select="concat(substring-after(substring-after(date/text(),'/'),'/'), '-', substring-before(date/text(),'/'), '-', substring-before(substring-after(date/text(),'/'),'/'))" /></date>
或者最好为此使用模板:
<xsl:template name="format_date">
<xsl:param name="date" />
<xsl:value-of select="concat( substring($date, 7, 2),'.',substring($date, 5, 2), '.', substring($date, 1, 4), ', ', substring($date, 9, 2),':',substring($date, 11, 2),'h' )" />
</xsl:template>
并将日期作为参数传递 (with-param)。
这会给你想要的 <date>2020-08-26</date>
使用 replace
你可以重新排序组件,如果你想创建一个 XSLT/XPath xs:date
,另外使用构造函数:
<xsl:template match="date">
<xsl:copy>
<xsl:value-of select="xs:date(replace(., '([0-9]{2})/([0-9]{2})/([0-9]{4})', '--'))"/>
</xsl:copy>
</xsl:template>