我有以下指数条目:
<entry name="a" page="1" />
<entry name="b" page="3" />
<entry name="b" page="4" />
<entry name="b" page="6" />
<entry name="c" page="7" />
我现在想得到这样的东西。
<index name="a" pages="1 />
<index name="b" pages="3-4, 6" />
<index name="c" pages="7" />
是否有人准备利用这一职能?
我正在考虑两种通行证办法,首先以指数条目的形式,如格式。
<index name="a" pages="1 />
<index name="b" pages="3 4 6" />
<index name="c" pages="7" />
然后将“3 4 6”改为“3-4 6”。 第一步容易:
<xsl:for-each-group select="index" group-adjacent="@name">
<xsl:element name="index">
<xsl:attribute name="name" select="@name"/>
<xsl:attribute name="pages" select="current-group()/@page"/>
</xsl:element>
</xsl:for-each-group>
(这里的属性页当然可能有所不同)
现在是困难的一步,我应如何通过名单来回避? 必须对以下几页(我可以将网页按顺序排列)为目前的“@page+1”进行核对。