Ich habe einige XML-Daten und ein XSL FO Stylesheet, um das XML zu formatieren. Ich habe die folgende XML-Dokument:XSL FO: Drucken Sie nur eine einzelne leere Zeile zwischen den Absätzen
<Content>
<Para>Paragraph One.</Para>
<Para />
<Para>Paragraph Two.</Para>
<Para />
<Para>Paragraph Three.</Para>
</Content>
die gewünschte Ausgabe nach wäre mit einem FO Stylesheet Styling:
Paragraph One.
Paragraph Two.
Paragraph Three.
Der tatsächliche Ausgang ich immer bin, ist unten, gibt es immer zwei Leerzeilen.
Paragraph One.
Paragraph Two.
Paragraph Three.
Der Stylesheet-Code Ich verwende ist:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:variable name="NewLine">
<xsl:text> </text>
</xsl:variable>
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master master-name="pageSetup">
<fo:region-body region-name="xsl-region-body" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="pageSetup">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<xsl:apply-templates />
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="Para">
<fo:block
linefeed-treatment="preserve"
white-space-collapse="false">
<xsl:choose>
<xsl:when test="text() != ''">
<xsl:value-of select="text()" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$NewLine" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Was ist der Sinn des Einsetzens Zeilenvorschüben? Um zusätzlichen Leerraum nach einem Absatz hinzuzufügen? Wenn ja, sollten Sie Ihrem ''s ein Padding oder einen Rand hinzufügen. –
potame