我需要将填充记录附加到使用XSLT生成的文件中。需要的是将文件中的总行数舍入到最接近的10,这样如果存在以下内容:
FileHeader
SectionHeader
Detail
Detail
Detail
SectionFooter
FileFooter
总行数为7,我需要添加3个填充记录:
FileHeader
SectionHeader
Detail
Detail
Detail
SectionFooter
FileFooter
[Filler Record]
[Filler Record]
[Filler Record]
我每次写一行时是否只是在xslt中增加一个变量并在最后用它来进行mod数学运算,或者xslt / xpath是否有办法知道它当前写了多少行,例如我可以做一些更可靠的函数调用,这会给我这个数量吗?
答案 0 :(得分:2)
没有办法在XSLT中增加变量。 XSLT也不能告诉你到目前为止它写了多少行(因为XSLT的设计更倾向于执行顺序独立性)。
相反,你可以
单独计算(例如计数)样式表应根据输入文档通过其他模板生成的记录数。如果输出记录的数量等于输入记录的数量,或者至少基于另一个记录容易预测,则这是更容易的方法。或者,
将初始转换的结果捕获到变量中(使用nodeset
扩展或使用XSLT 2.0),然后在其上运行count()
以确定其中的记录数。然后执行xsl:copy-of
输出捕获的结果,然后输出所需的任何填充。