我目前正在研究一些复杂的DocBook文档,特别是它的xslt转换为FO(从那里到PDF)。
在这种情况下,我正在努力解决工作流程的某些特性,并希望这里的某些人可以给我一些提示。
我有一个名为description的自定义元素,在我的模式中定义如下:
db.description = element description { text*, db.para* }
使用此元素工作正常,在我的样式表中,我想将元素的内容放入表中,如下所示:
<fo:table-cell border-style="none" border-width="0pt" text-align="start">
<fo:block><xsl:value-of select="d:description" />
</fo:block>
</fo:table-cell>
基本上,一切都运行正常,但这里的棘手要点是描述元素通常包含一些元素,这些元素不再被评估,只被视为文本。这意味着文本被复制到表中,但样式表不会产生段落: - (
我可以去为我的样式表添加元素的显式处理,但我想必须有一种更简单的方法,因为DocBook样式表本身已经实现了这种处理。
那么,有没有人知道如何说服样式表来评估我的客户元素下的元素呢?
提前致谢 诺贝特
答案 0 :(得分:3)
我想而不是<xsl:value-of select="d:description" />
你想使用<xsl:apply-templates select="d:description/node()"/>
(然后假定DocBook样式表或你自己的代码有db.para
和后代元素的匹配模板。