如何逃脱” " 或 XSLT PDF 中的新行特殊添加字符?

How to escape " 
" or new line special added character in XSLT PDF?

我正在使用 apache FOP 通过 XSL 1.0 将 XML 转换为 PDF。

我有 xml 个节点

<ABC>This is one line&#xD;
  This is second line&#xD;
This is third line</ABC>

我希望输出与节点相似,即

  This is one line 
  This is second line
  This is third line

但它只有一行。 那么有什么解决方案可以在 xsl 中转义“ ”吗?以下代码用于获取节点的值。

 <xsl:value-of select="ABC" disable-output-escaping="yes"  />

解决问题的方法是分析字符串,例如

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:template match="/">
        <xsl:analyze-string select="ABC" regex="&#xD;">
            <xsl:matching-substring></xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="."/>
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </xsl:template>
</xsl:stylesheet>

利用我们随后在匹配时拆分并且仅使用不匹配的字符串这一事实。

您要查找的属性是linefeed-treatment

将其设置为 "preserve" 将具有将换行分隔的文本作为单独段落处理的效果,因此像这样的块

<fo:block linefeed-treatment="preserve">A
B
C</fo:block>

将在输出中产生三行

A
B
C