Fabian: Zeilenumbrüche <br> mit DocBook?

Hallo miteinander
Wie krieg ich in einer HTML Ausgabe aus einer DocBook-Transformation ein <br /> Tag an die gewünschte Stelle?

Mit dem DocBook Knoten <literallayout> ist es ja möglich, dass schon mal die Zeilenumbrüche im Ausgabefile erhalten bleiben. Bei einer HTML-Ausgabe bringt dies jedoch wenig, da ein NewLine keine Auswirkungen auf die Darstellung im Browser hat. Da wäre eben der <br /> wünschenswert.

Muss ich dies irgendwie speziell im XML-Dokument kennzeichnen? Gibt es entsprechende Parametrierungsmöglichkeiten im Transformationstemplate?

???

Besten Dank für die Hilfeè
Fabian

  1. Hallo Fabian,

    Muss ich dies irgendwie speziell im XML-Dokument kennzeichnen? Gibt es entsprechende Parametrierungsmöglichkeiten im Transformationstemplate?

    Ersetze die Zeilenumbrüche (new line = &#xA;) durch <br />. Hier die Vorgehensweise mit der XPath 2.0-Funktion fn:replace():

    <xsl:template match="literallayout">  
      <xsl:value-of select="fn:replace(.,'&#xA;','&lt;br /&gt;')" disable-output-escaping="yes"/>  
    </xsl:template>
    
    <literallayout>Das  
    ist  
    ein  
    Test.</literallayout>
    

    ergibt: Das<br />ist<br />ein<br />Test.

    Schreibe alternativ ein rekursiv aufgerufenes Template, welches die Umformung vornimmt.

    Grüße,
    Thomas