我有一些XML,我试图将其转换为适合打印的报表。到目前为止,一切都进展顺利,除了一部分。在for-each期间插入新元素到提供的XML中
这涉及当前正在输出的行的当前页码。我使用<fo:page-number/>
来获取当前页码,但是我发现在使用与当前行同级相关的信息后,我发现我无法在范围内设置一个变量,请使用for-each
独自被改变。
所以,我目前玩弄的想法是,在每次迭代时,正在使用的当前节点都有一个新的元素(或属性)被引入,其中包含当时出现的fo:page-number
的值。然后,在下一次迭代中,我将从preceding-sibling::
中获取元素/属性,然后测试当前的fo:page-number
是否与该值不同。
不幸的是,我没有太多的运气找到一种方法来做到这一点,我从谷歌搜索获得的所有结果都来自w3fools的结果。有谁知道这是否可能,如果有的话,怎么做?
我不确定我在这里理解你的逻辑 - 你使用XSLT生成XSL-FO,然后使用FO处理器将生成的XSL-FO转换为渲染输出,只有在这个阶段你才知道什么值一个特定的''会产生(XSLT和XSL-FO处理器可能是同一个软件包的一部分,但在概念上它们是两个独立的阶段)。您不能在XSLT中使用'page-number'标签产生的输出值。 –
嗯,这是一个耻辱。是否还有其他函数(很可能在fo内)允许将当前页码作为逻辑中的变量使用? – topherg
在什么阶段你想使用'fo:page-number?'在XSLT阶段(即将XML数据转换为XSL-FO),页码是未知的。但是,为什么不更清楚地说明你打算实现的目标(可能包括XML示例或描述输出) - 那么,也许有人可以提出另一种解决方案? –