使用xml生成记录,使用xsl显示记录,我有100条记录,以及如何添加页码。
如何在xsl文件或xml中设置每页5条记录尝试使用<xsl:for-each select="main/sub">
但是每页提供相同的记录5次
<xsl:template match="book">
<xsl:for-each select="mani/sub">
<xsl:apply-templates mode="sub" select="."/>
<xsl:for-each select="./pages/page">
<xsl:apply-templates mode="page" select="."/>
</xsl:for-each>
<p style="page-break-after: always"/>
</xsl:for-each>
</xsl:template>
答案 0 :(得分:1)
我对输出的结构并不完全清楚。但是,在每n次运行后将一个元素放入for-each-loop非常简单。你可以这样做:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="book">
<xsl:for-each select="number|mani/sub/display-number|mani/sub/pages/page/number|mani/sub/pages/page/weight">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:if test="position() mod 5 = 0"><Page_break/></xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:transform>
此脚本获取输入中的所有数字,将每个数字放入,每个数字后面加一个空格。关键部分是position() mod 5 = 0
。这样可以确保只有当前循环位置可以被5分割时才会输出分页符元素,这意味着:每运行5次。
顺便说一句:<Page break>
格式不是很好的XML,你最好把它改成<Page break>
或类似的东西。