我有一个文档,其中每个节点中的数据不同,并且有一个节点具有作为结束标记的属性。我试图在所有页面中创建具有相等行的数据页面,如果其中一个节点数据不在页面上,那么所有节点数据都应该移动到下一页面。还有一个带有“结束标记”的节点应该在最后一页中。
示例输入:
<Book>
<node>
<line>Test</line>
<line>Test</line>
<line/>
</node>
<node>
<line>Test</line>
<line/>
</node>
<node>
<line>Test</line>
<line/>
</node>
<node>
<line>Test</line>
<line/>
</node>
<node>
<line>First 2</line>
<line>Second 2</line>
<line>Third 2</line>
<line>Fourth 2</line>
</node>
<node endTag="Y">
<line>End</line>
<line>Data</line>
<line/>
</node>
所需输出是包含5行数据的页面:
<Book>
<Page>
<line>Test</line>
<line>Test</line>
<line/>
<line>Test</line>
<line/>
</Page>
<Page>
<line>Test</line>
<line/>
<line>Test</line>
<line/>
<line/>
</Page>
<Page>
<line>First 2</line>
<line>Second 2</line>
<line>Third 2</line>
<line>Fourth 2</line>
<line/>
</Page>
<Page>
<line/>
<line/>
<line>End</line>
<line>Data</line>
<line/>
</Page>
答案 0 :(得分:0)
你想要
<xsl:for-each-group select="/Book/line"
group-adjacent="(position() - 1) idiv 5">
<Page>
<xsl:copy-of select="current-group()"/>
</Page>
</xsl:for-each-group>