2009-07-04 15 views
15

имеющий довольно простой шаблон:XSL-FO - элементы Пустой блок

<xsl:template match="p"> 
    <fo:block> 
     <xsl:apply-templates/> 
    </fo:block> 
</xsl:template> 

Я спрашиваю себя, как сказать FO, чтобы сохранить пустые строки, если блок пуст.

Приветствия
Jan

ответ

32

Просто добавьте <fo:leader/> элемент в конце вашего <fo:block>. Например:

<xsl:template match="p"> 
     <fo:block> 
       <xsl:apply-templates/> 
       <fo:leader /> 
     </fo:block> 
</xsl:template> 

Лидер ничего не сделает для строк с контентом и создаст пустую строку для строк без содержания.

Протестировано с помощью Apache FOP и XEP.

8

В качестве альтернативы,

<fo:block white-space-treatment="preserve"> </fo:block> 
11

Или

<xsl:template match="p"> 
    <fo:block> 
      <xsl:apply-templates/> 
      &#x00A0; 
    </fo:block> 

&#x00A0; является эквивалентом &nbsp; в HTML (на самом деле &nbsp; является XML-объект, который определяется как А0, которая является символом Unicode для неразрушающего пространства).

Смежные вопросы