Zeilenumbruch in XML
miamiomc
- xml
Hallo Gemeinde,
nach langem durchsuchen des Forumsarchivs stelle ich mein Problem hier mal ein.
Ich habe formatierten Text der auch so in XML wiedergegeben werden soll.
Ich habe bisher folgendes versucht:
<element>blabla 
 blabla </element>
<element>
<![CDATA[blabla
blabla]]>
</element>
<element>
<![CDATA[blabla]]><br/>
<![CDATA[blabla]]>
</element>
Alles leider bisher ohne Erfolg.
Im Forumsarchiv habe ich zwar einen Beitrag gefunden, der darin aufgeführte Link dazu existiert aber leider nicht mehr.
Die Ausgabe der XML-Datei erfolgt via XSL als HTML. Es wird keine DTD verwendet. Falls eine DTD zu verwenden ist: Wie ist der Aufbau einer DTD und wie ist diese in die XML bzw. XSL einzubinden.
Kennt hier jemand eine Lösung zu Zeilenumbruch?
Danke
Lothar
@@miamiomc:
<element>blabla 
 blabla </element>
„S (Leerraum, White Space) besteht aus einem oder mehreren Leerzeichen (#x20), Wagenrückläufen, Zeilenvorschüben oder Tabulatoren.“ [XML §2.3] Oft werden sämtliche White-Space-Zeichen gleich behandelt und als normales Leerzeichen ' ' U+0020 wiedergegeben.
Intersessant dürften die Abschnitte 2.10 Behandlung von Leerraum [XML §2.10] und 2.11 Behandlung des Zeilenendes [XML §2.11] sein.
<element>
<![CDATA[blabla]]><br/>
<![CDATA[blabla]]>
</element>Alles leider bisher ohne Erfolg.
Das sollte zum Erfolg führen, wenn du das 'br'-Element aus deiner XML-Ressource in ein ebensolches in deine (X)HTML-Ressource transformierst.
Die Markierung als CDATA dürfte auch nicht unbedingt nötig sein.
Live long and prosper,
Gunnar
@gunnar
<element>blabla 
 blabla </element>
„S (Leerraum, White Space) besteht aus einem oder mehreren Leerzeichen (#x20), Wagenrückläufen, Zeilenvorschüben oder Tabulatoren.“ [XML §2.3] Oft werden sämtliche White-Space-Zeichen gleich behandelt und als normales Leerzeichen ' ' U+0020 wiedergegeben.
Intersessant dürften die Abschnitte 2.10 Behandlung von Leerraum [XML §2.10] und 2.11 Behandlung des Zeilenendes [XML §2.11] sein.
Das sollte zum Erfolg führen, wenn du das 'br'-Element aus deiner XML-Ressource in ein ebensolches in deine (X)HTML-Ressource transformierst.
Wie transformiere ich das Element? Wenn ich es innerhalb des CDATA mit aufführe wird es als Text ausgegeben. Außerhalb von CDATA oder einfach nur innerhalb des XML passiert gar nichts.
Die Markierung als CDATA dürfte auch nicht unbedingt nötig sein.
Aufgrund eines Eintrages in einem anderen Forum
http://www.spotlight.de/zforen/xml/m/xml-1131967402-24449.html
bin ich davon ausgegangen, dass Zeilenumbrüche in CDATA Abschnitten ohne jede weitere Anweisung wiedergegeben werden.
Ich aber leider zugeben, dass ich momentan leider nur Bahnhof verstehe. Hast Du vielleicht ein Beispiel?
Danke
Lothar
@@miamiomc:
Das sollte zum Erfolg führen, wenn du das 'br'-Element aus deiner XML-Ressource in ein ebensolches in deine (X)HTML-Ressource transformierst.
Wie transformiere ich das Element?
Wie transformierst du die anderen? Mit Templates?
'<xsl:apply-templates />
' im Template fürs Elternelement vorausgesetzt, sollte es das tun:
<xsl:template match="br">
<br />
</xsl:template>
Live long and prosper,
Gunnar
Hallo Gunnar,
Lösung gefunden:
In der XSL:
<td class="col2"><pre class="col2"><xsl:value-of select="Info"/></pre></td>
In der CSS:
pre {font-family:Arial,Helvetica,sans-serif;word-wrap:break-word;}
Damit werden alle Zeilenumbrüche die in XML vorhanden sind korrekt wiedergegeben und die Zeilen automatisch umgebrochen, falls diese länger sind als der zur Verfügung stehende Platz.
Eine Anpassung beim Export bzw. der Erstellung der XML-Datei aus Access ist nicht notwendig.
Lothar