我有一个xsl-fo文档有多个<page-sequences>
。每秒<page-sequences>
个元素都有id="end"
个属性。当我使用ref-id="end"
引用这些ID时,如何知道检索了哪个元素?我可以引用具有该ID的下一个元素吗?
示例(我的问题可以在评论中再次看到):
<fo:page-sequence id="end">
...........
</fo:page-sequence>
<fo:page-sequence>
...........
<fo:page-number-citation-last ref-id="end"/>
<!-- unfortunately, the previous element having id="ref" has been thus referenced -->
<!-- how could I reference the next element? -->
...........
</fo:page-sequence>
<fo:page-sequence id="end">
...........
</fo:page-sequence>
答案 0 :(得分:1)
请你写一下这个答案(对我的两个问题),以便我能接受吗?
不确定。在XSL-FO中引用特定元素的前提条件是您可以明确地识别它。执行此操作的最佳方法是对要标识的元素使用ID
属性。
ID必须包含任何字母数字字符序列和_
(即,其值必须是有效的NCName,请参阅the specification here)。
您可以手动输入每个ID,但通常使用xsl:generate-id()
完成(这是XSLT的功能,而不是XSL-FO)。 generate-id()
会自动确保ID在整个文档中都是唯一的。
请注意,generate-id()
实际上为当前模板匹配或正在xsl:for-each
的迭代中处理的节点生成ID。
您可以在XML中的每个元素上放置一个ID,因此可以为XSL-FO中的任何元素引用ID。