文档的每个页面上都有与TOC相关的锚标记,但它们也位于封面页上,因此锚页1是封面。我需要将第3个物理页面(sumpage1)作为锚点页面1.如何重置锚点标签以使文档页面1成为第3页,并且后续的锚点号码也会重新设置为新的sumpage1编号?
期望的结果:
<Hpage Hplname="cover">
<DIV style="padding: 4pt; width: 98%; display: block;">
<P style="font: 8pt Arial, Helvetica, Sans-Serif;">
</P>
<Hpage Hplname="sumpage1">
<DIV style="padding: 4pt; width: 98%; display: block;">
<P style="font: 8pt Arial, Helvetica, Sans-Serif;">
<A href="#tocpage">Back to Contents</A>
<A name="toc1"/>
</P>
在sumpage1页面之后allpagel应该是toc2(依此类推):
<Hpage Hplname="allpagel">
<DIV style="padding: 4pt; width: 98%; display: block;">
<P style="font: 8pt Arial, Helvetica, Sans-Serif;">
<A href="#tocpage">Back to Contents</A>
<A name="toc4"/>
</P>
答案 0 :(得分:1)
我猜你可以使用身份转换模板
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
加上空
<xsl:template match="Hpage[@Hplname = 'cover']//A[@name]"/>
从封面上移除锚点
<xsl:template match="Hpage[not(@Hplname = 'cover')]//A[@name]">
<xsl:variable name="count" as="xs:integer">
<xsl:number count="Hpage[not(@Hplname = 'cover')]//A[@name]" level="any"/>
</xsl:variable>
<A name="toc{$count}"/>
</xsl:template>
对Hpage
元素内的锚点进行编号。