解析日期字符串

时间:2009-11-27 16:09:31

标签: datetime xslt

我正在编写XSLT,将XML文档从一个DTD转换为另一个DTD,并在此过程中尝试整理一些日期字符串。

源文档中的每条记录都有一个日期元素,其中包含日期的字符串表示形式。一些说明性的例子:

  • 1995年4月11日
  • 1995年4月14日
  • 2002年9月10日
  • 2004年9月14日
  • 2002年6月21日至23日
  • 2005

我希望我的结果文档包含ISO 8601格式的日期(或适当的日期范围)。

实现这一目标的最佳策略是什么?我可以指责并开始编写一个函数来转换它们(可能基于正则表达式),但我发现很难相信某人还没有解决这个问题。

是否有一个XSLT模块/功能可以为我完成大部分工作?我应该在XSLT之外寻找解决方案吗?

2 个答案:

答案 0 :(得分:0)

我觉得很难相信它,因为当你有非标准格式的日期时,你可以拥有任何东西,因此不可能开发出通用的解决方案。您如何将21-23 June 2002转换为单个日期?

我想使用正则表达式确实是最好的选择。也许你可以找到一些现成的正则表达式来处理一些非标准的日期格式,但很可能你必须根据自己的需要进行调整。

答案 1 :(得分:0)

您需要进行一些词汇转换,并且可能自己编写大部分内容。 XSLT不是一个很好的语言来做你想要的事情 - 我会选择一个具有过程代码和日期库的DOM。在我自己的情况下,我会使用Java和XOM(http://xml.xom.nu)但你可以在Python或C#或...中做同样的事情。

我将转换XML中的数据,然后分两步进行XSLT转换