如何在BI Publisher RTF模板中结合html2fo标签使用if else条件
解决方案
- 先通过XPath判断
UE_GEN_DETAILEDDESCRTF字段的HTML内容是否非空,用normalize-space()过滤纯空格导致的误判 - 把
html2fo标签嵌套在条件判断内部,确保只有字段非空时才执行转换并显示目标文本
代码示例
场景1:需要展示原HTML内容 + 显示XYZ
<xsl:if test="normalize-space(UE_GEN_DETAILEDDESCRTF) != ''"> <!-- 解析HTML并转换为FO格式 --> <html2fo:html2fo> <xsl:value-of select="UE_GEN_DETAILEDDESCRTF" disable-output-escaping="yes"/> </html2fo:html2fo> <!-- 显示特定文本 --> <fo:block>XYZ</fo:block> </xsl:if>
场景2:仅显示XYZ,不需要原HTML内容
<xsl:if test="normalize-space(UE_GEN_DETAILEDDESCRTF) != ''"> <fo:block>XYZ</fo:block> </xsl:if>
必加配置
要确保XSL根节点声明了html2fo的命名空间,否则标签会失效:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html2fo="http://xmlgraphics.apache.org/fop/extensions/html2fo" version="1.0">
内容的提问来源于stack exchange,提问作者Kritika Gupta
相关产品推荐
相关产品推荐

