相当丑陋但仍然是一个分组问题。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(., ' '), ' ')
, ' ')
)" />
循环组:
<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,但这不是要求的。