上下文
我正在创建一个XSL-FO文档,将我的XML文本转换为PDF。
在XSL-FO中,我有两个连续的内联元素,我想在它们之间留一个空格:
<fo:block>
<xsl:number/> <xsl:value-of select="@title"/>
</fo:block>
预期结果将是:
1简介
相反,我得到了
1简介
似乎XML不考虑这个空白区域。
尝试
我尝试了几种可能的解决方案,但没有成功:
<fo:block>
<xsl:number/><fo:inline white-space="pre"> </fo:inline><xsl:value-of select="@title"/>
</fo:block>
或
<fo:block>
<xsl:number/><fo:inline margin-left="0.5cm"><xsl:value-of select="@title"/></fo:inline>
</fo:block>
这些想法都没有产生可接受的结果。
问题:
如何在两个(内联)元素之间包含空格?
答案 0 :(得分:15)
尝试:
<fo:block>
<xsl:number/>
<xsl:text> </xsl:text>
<xsl:value-of select="@title"/>
</fo:block>
或者:
<fo:block>
<xsl:number/>
<xsl:value-of select="concat(' ', @title)"/>
</fo:block>
答案 1 :(得分:4)
的问题
<fo:inline white-space="pre"> </fo:inline>
默认情况下,样式表中的所有仅空白文本节点都被删除,但xsl:text
元素内的节点除外。您可以使用xml:space="preserve"
<fo:inline xml:space="preserve" white-space="pre"> </fo:inline>
将保留所有具有此属性的元素后代的空白文本节点。请注意,与普通命名空间不同,您不需要(实际上也不允许)声明xml:
命名空间前缀。
答案 2 :(得分:0)
您还可以使用以下内容:
&nbsp;