我想在XSLT 2.0中这样一个日期:
<unitdate>September 9, 2018</unitdate>
到
<unitdate>2018 September 9</unitdate>
或者这个:
<unitdate>June 1976</unitdate>
到
<unitdate>1976 June</unitdate>
我没有任何标准化的XS日期。
我有一个身份转换:
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
然后这就是我开始的内容:
<xsl:template match="//unitdate">
</xsl:template>
答案 0 :(得分:2)
您还可以使用xsl:analyze-string来完成其他操作,您需要指定多少模式,但这将是更多的代码,但很容易:
<xsl:template match="unitdate">
<unitdate>
<xsl:analyze-string select="." regex="([a-zA-Z]+) ([0-9][0-9]?),? ([0-9][0-9][0-9][0-9])">
<xsl:matching-substring>
<xsl:value-of select="regex-group(3),regex-group(1),regex-group(2)"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:analyze-string select="." regex="([a-zA-Z]+) ([0-9][0-9][0-9][0-9])">
<xsl:matching-substring>
<xsl:value-of select="regex-group(2),regex-group(1)"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:non-matching-substring>
</xsl:analyze-string>
</unitdate>
</xsl:template>