首页 > 解决方案 > 使用 XSL 转换定位和格式化包含在 XML 属性中的 HTML

问题描述

我正在使用 XSL-FO 转换将 XML 转换为 PDF。在这个 XML 中,我有各种字段,它们只是复制到 PDF 中而没有格式化。

某些字段的值作为 HTML 存储在属性中,而我需要格式化。我在使用 XSL 模板定位和格式化此 HTML 时遇到问题。

我尝试使用各种选择器和模板来使 XSL 成为上述 html 的格式化输出。

这是 XML 的一个示例,您可以在其中看到 valueString 字段以及“value”属性内的 HTML。

<item>
     <linkId value="linkId1"/>
     <text value="This is some title text"/>
     <answer>
         <valueString
             value="&lt;p>&lt;strong>This is the html value&lt;/strong>&lt;/p>&#xa;&lt;p>which I am not able to format&lt;/p>"/>
     </answer>
 </item>

我尝试使用此模板来定位和格式化此 html(例如,对于强 html 元素):

    <xsl:template match="valueString[@value='strong']">
        <fo:inline font-weight="bold">
            <xsl:apply-templates/>
        </fo:inline>
    </xsl:template>

我使用以下方法调用模板:

<xsl:apply-templates select="n1:answer/n1:valueString"></xsl:apply-templates>

我究竟做错了什么?

任何帮助将不胜感激。

标签: htmlxmlxsltxsl-fo

解决方案


推荐阅读