使用XSLT将字符串表示形式转换为日期



基于JIRA的XML RSS提要,我正在尝试创建一些基于日期的分组-即在一年中一个月内有多少bug。这给我带来了一些问题。我可以根据任务的类型找到任务并对其进行分组,但是当涉及到处理日期时,我就短了。

日期字符串看起来像这样:<created>Thu, 4 Oct 2012 10:53:38 +0200</created>。我的问题是,我似乎无法从这个字符串中提取月份和年份。

脚本将在JIRA/Confluence下运行,所以我怀疑exslt的日期传递器将在该平台上工作。

我不需要时间,所以可以删除。我需要的是能够从这个文本字符串中提取月+年,以便我按那些(02-2012)分组。

非常难看,但仍然是一个分组问题。xslt-1.0的"正常"解决方案是muenchian分组(例如查看此)。

与此键:

<xsl:key name="kMonthYear" match="created"  use="concat( 
                        substring-before(
                            substring-after( substring-after( substring-after(., ' '), ' '),' ')
                            , ' '),
                         '-', 
                         substring-before(
                            substring-after( substring-after(., ' '), ' ')
                            , ' ')
                        )" />

Loop over group:

<xsl:for-each select="//created[
         generate-id() = generate-id(key('kMonthYear', concat( 
                    substring-before(
                        substring-after( substring-after( substring-after(., ' '), ' '),' ')
                        , ' '), 
                     '-', 
                     substring-before(
                        substring-after( substring-after(., ' '), ' ')
                        , ' ')
                    ))[1])
          ]" >

遍历组成员

        <xsl:for-each select="key('kMonthYear', concat( 
                    substring-before(
                        substring-after( substring-after( substring-after(., ' '), ' '),' ')
                        , ' '), 
                     '-', 
                     substring-before(
                        substring-after( substring-after(., ' '), ' ')
                        , ' ')
                    ))" >

我不知道如何按月排序,没有任何扩展或使用xslt-2.0,但这不是要求的。

最新更新