XSL-FO元素之间的空格

时间:2014-06-03 10:50:02

标签: xml xslt

我使用此代码进行两级编号,例如" 1.1。第一章",例如。

    <fo:inline>
      <xsl:number from="Book" count="Chapter"/>.
      <xsl:number from="Chapter" count="Chapter"/>.
      <xsl:text> </xsl:text>
      <xsl:apply-templates select="....."/>
    </fo:inline>

但我发现此代码生成以下文本:

1. 1. Chapter One

- xsl:number元素之间有空格。这就是我不想发生的事情。 我已经

<xsl:strip-space elements="*"/>

但它没有任何帮助。

如何摆脱这些寄生虫空间?

2 个答案:

答案 0 :(得分:2)

.代码

中设置期间xsl:text
<fo:inline>
  <xsl:number from="Book" count="Chapter"/><xsl:text>.</xsl:text>
  <xsl:number from="Chapter" count="Chapter"/><xsl:text>.</xsl:text>
  <xsl:text> </xsl:text>
  <xsl:apply-templates select="....."/>
</fo:inline>

答案 1 :(得分:0)

一种简单的方法是避免使用标记之外的新行:

<fo:inline>
  <xsl:number from="Book" count="Chapter"/>.<xsl:number
              from="Chapter" count="Chapter"/>.
  <xsl:apply-templates select="....."/>
</fo:inline>

你肯定不需要<xsl:text>,因为你会在那里得到换行符。虽然如果你不想换行,你可以再次删除它:

<fo:inline>
  <xsl:number from="Book" count="Chapter"/>.<xsl:number
              from="Chapter" count="Chapter"/>. <xsl:apply-templates
              select="....."/>
</fo:inline>