FOP XSL 1.0替换文本并保留换行符



我正试图使用xsl+xml生成pdf,但我在文档的某个部分遇到了问题,其中有几行文本带有换行符。生成文档时,它没有保留这些换行符。

我什么都试过了,但我完全被卡住了。

我的代码是:

<fo:table-row>
<fo:table-cell margin-right="0mm" margin-left="0mm"
margin-bottom="0mm" margin-top="0mm"
xsl:use-attribute-sets="bordergris" number-columns-spanned="5">
<fo:block xsl:use-attribute-sets="titoldades" 
space-before.optimum="0pt" space-after.optimum="0pt"
keep-together="always" >
More info:
</fo:block>                                     
<fo:block xsl:use-attribute-sets="dades"  
space-before.optimum="0pt" space-after.optimum="0pt"
keep-together="always" linefeed-treatment="preserve">

<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="/Response/DataList/Data/MoreInfo"/>
<xsl:with-param name="replace" select="'  '" />
<xsl:with-param name="with" select="'&lt;fo:block/&gt;'"/>
</xsl:call-template>
</fo:block>                                     
</fo:table-cell>                                
</fo:table-row> 

使用模板功能:

<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>

<xsl:template>

并且所得到的文本与硬编码文本"一起出现<fo:block/>quot;而不是应用换行符。

我做错了什么?

谢谢!!!

重要的是将以下属性放入fo:block:

inefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve"

然后用以下内容替换:

<fo:block xsl:use-attribute-sets="dades"  
linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="preserve">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="/Response/DataList/Data/MoreInfo"/>
<xsl:with-param name="replace" select="'  '" />
<xsl:with-param name="with" select="'&#xa;'"/>
</xsl:call-template>

最新更新