2

JIRA からの XML RSS フィードに基づいて、日付に基づいていくつかのグループを作成しようとしています。つまり、1 年間を通して 1 か月以内に発生したバグの数です。これは私にいくつかの問題を与えています。タイプに基づいてタスクを見つけてグループ化することはできますが、日付の処理に関しては不十分です。

日付文字列は次のようになります<created>Thu, 4 Oct 2012 10:53:38 +0200</created>。私の問題は、この文字列から月と年を抽出できないように見えることです。

スクリプトは JIRA/Confluence で実行されるため、exslt の date-paser がそのプラットフォームで動作するかどうかは疑問です。

時間がいらないので、削除できます。必要なのは、このテキスト文字列から月と年を抽出して、それら (02-2012) でグループ化できるようにすることです。

4

1 に答える 1

2

かなり醜いですが、それでもグループ化の問題です。xslt-1.0 を使用した「通常の」解決策は、ミュンチャン グループ化です(たとえば、thisを参照してください)。

このキーで:

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

グループをループ:

<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 を使用して月ごとに並べ替える方法がわかりませんが、これは要求されませんでした。

于 2013-05-27T14:15:58.790 に答える