将日期(01 Jan 00)的字符串表示形式的XSLT转换为xs:date

时间:2010-02-10 10:50:01

标签: string xslt date

我坚持使用字符串转换为xs:date。我真的很感激任何帮助和提示!

我有一个字符串,表示格式为“01 Jan 00”的日期,我需要将其转换为xs:date,以便我可以进一步操作它。

是否有一个函数或某些东西已经存在,以便我可以转换我日期难以处理的字符串表示形式?我是否需要从头开始编写函数以将“MN”格式的月份转换为其数字表示形式?

请帮忙! :) 谢谢!

的Daria

4 个答案:

答案 0 :(得分:2)

EXSLT库可能是个不错的选择:http://www.exslt.org/

答案 1 :(得分:0)

我认为你需要一个功能。类似的内容描述为here

答案 2 :(得分:0)

您可以绑定扩展功能,将日期字符串转换为所需的格式。确切的机制将取决于您的XSLT引擎。

在.NET中,我们可以采用以下方法:

public class DateConv
{
    public string AsXsDate( string date )
    {
        return DateTime.Parse(date).ToString("yyyy-MM-dd");
    }
}

XsltArgumentList args = new XsltArgumentList();
args.AddExtensionObject("urn:date-conv", new DateConv());

xslt.Transform( input, args output );

并在像这样的样式表中使用它:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:date="urn:date-conv">

    <xsl:template match="bookstore">
        <xsl:value-of select="date:AsXsDate('01 Jan 00')"/>
    </xsl:template>

</xsl:stylesheet>

答案 3 :(得分:0)

我最终编写了一个简单的函数,用于确定我在XML中使用的两种日期格式:“01 Jan 00”和标准日期时间字符串“2000-01-01”;并将非标准转换为标准“YYYY-MM-DD”。

然后我使用EXSLT函数(http://www.exslt.org/date/index.html)来进一步操作日期。