使用XSLT为每个文本创建带有内联标记的XSL-FO

时间:2014-11-03 10:23:40

标签: html xsl-fo

基于this answer

中提供的解决方案

我想转换此HTML

<doc>
  <par>
    <point>
      <text><bold>bolded text</bold> and <italic>italic</italic></text>
    </point>
  </par>
</doc>

并获得:

<fo:block>
    <fo:inline font-weight="bold">bolded text</fo:inline>
    <fo:inline> and </fo:inline>
    <fo:inline font-style="italic">italic</fo:inline>
</fo:block>

请注意与链接中提供的解决方案的不同之处,我希望将每个文本放在fo:inline标记中。在此示例中,字符串“and”放在内联标记中,而不是父块标记。

我怎么能得到这个呢?

感谢您的帮助。

Gpo23

1 个答案:

答案 0 :(得分:0)

一种选择是添加一个专门匹配text() text的直接子项的模板。

<xsl:template match="text/text()">
    <fo:inline>
        <xsl:value-of select="."/>
    </fo:inline>
</xsl:template>