かなり醜いですが、それでもグループ化の問題です。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 を使用して月ごとに並べ替える方法がわかりませんが、これは要求されませんでした。