如何逃脱” " 或 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
This is second line
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="
">
<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
我正在使用 apache FOP 通过 XSL 1.0 将 XML 转换为 PDF。
我有 xml 个节点
<ABC>This is one line
This is second line
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="
">
<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