如何在两个(内联)元素之间插入空格?
Posted
技术标签:
【中文标题】如何在两个(内联)元素之间插入空格?【英文标题】:How to insert a white space between two (inline) elements? 【发布时间】:2014-10-10 10:50:13 【问题描述】:上下文
我正在创建一个 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>
这些想法都不会产生可接受的结果。
问题:
如何在两个(内联)元素之间包含空格?
【问题讨论】:
【参考方案1】:试试:
<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>
【讨论】:
【参考方案2】:问题
<fo:inline white-space="pre"> </fo:inline>
默认情况下,样式表中的所有仅空白文本节点都被删除,xsl:text
元素内的节点除外。你可以用xml:space="preserve"
覆盖它
<fo:inline xml:space="preserve" white-space="pre"> </fo:inline>
将保留作为具有此属性的元素的后代的所有空白文本节点。请注意,与普通命名空间不同,您不需要(实际上也不允许)声明 xml:
命名空间前缀。
【讨论】:
【参考方案3】:您还可以使用以下内容:
&nbsp;
【讨论】:
以上是关于如何在两个(内联)元素之间插入空格?的主要内容,如果未能解决你的问题,请参考以下文章