HTML Elemente im XML Dokument
Heiko Jägle
- xml
0 Philipp Hasenfratz0 MudGuard
0 Thomas J.S.0 fjh
Hallo XML-Spezialisten,
auf welche Weise lassen sich HTML-Elemente am besten in XML-Knoten einbinden und mit XSLT verarbeiten?
Zum Beispiel möchte ich in einem XML Element <beschreibung> nicht nur einfache Text-Strings sondern auch HTML-Elemente wie <i>, <b>, Auflistungen oder gar Tabellen hineinkopieren und für die Ausgabe im Browser nutzen. Die Vorgabe für das XML-Dokument erfolgt mit XML-Schema. Muß ich alle HTML-Elemente und deren Attribute in diesem XML-Schema selbst definieren oder gibt es eine bequemere Möglichkeit dazu?
Ein vereinfachtes Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<buecher>
<buch>
<titel>Buch 1</titel>
<beschreibung>Ein Buch über
<ul>
<li>XML</li>
<li>XSL</li>
<li>CSS</li>
</ul>
und so weiter.
</beschreibung>
</buch>
<buch>
...
</buch>
</buecher>
Wie bekomme ich im XSLT-Template diese HTML-Knoten 1:1 in die Ausgabedatei? Muß ich hier wieder für jedes HTML-Element ein Template erstellen?
Fragen über Fragen... Vielen Dank im voraus für Eure Hilfe und Anregungen.
Heiko Jägle
Halihallo Heiko
auf welche Weise lassen sich HTML-Elemente am besten in XML-Knoten einbinden und mit XSLT verarbeiten?
Wenn du die HTML Elemente nicht verarbeiten möchtest, verwende CDATASections:
<?xml version="1.0" encoding="UTF-8"?>
<buecher>
<buch>
<titel>Buch 1</titel>
<beschreibung><![CDATA[Ein Buch ueber
<ul>
<li>XML</li>
<li>XSL</li>
<li>CSS</li>
</ul>
und so weiter.]]>
</beschreibung>
</buch>
<buch>
...
</buch>
</buecher>
du solltest bei Gelegenheit das "ü" maskieren.
Viele Grüsse
Philipp
Hi,
<?xml version="1.0" encoding="UTF-8"?>
du solltest bei Gelegenheit das "ü" maskieren.
Aus welchem Grund? Im Unicode ist ü unmaskiert erlaubt. Auch wenn der Unicode im Format UTF-8 codiert wird.
Zu Heikos 2. Frage: xsl:copy-of
cu,
Andreas
Hallo,
auf welche Weise lassen sich HTML-Elemente am besten in XML-Knoten einbinden und mit XSLT verarbeiten?
Entweder wie jedes andere Element, oder du verwendest html-Namespace (ob das aber auch nütz kann ich dir nicht sagen, hängt ja von deinen Anwendungen ab)
Zum Beispiel möchte ich in einem XML Element <beschreibung> nicht nur einfache Text-Strings sondern auch HTML-Elemente wie <i>, <b>, Auflistungen oder gar Tabellen hineinkopieren und für die Ausgabe im Browser nutzen. Die Vorgabe für das XML-Dokument erfolgt mit XML-Schema. Muß ich alle HTML-Elemente und deren Attribute in diesem XML-Schema selbst definieren oder gibt es eine bequemere Möglichkeit dazu?
Aus XML-Sicht, sind das keine HTML-Element sondern einfach Elemente wie jedes andere Element in deinem XML. (oder du nützt nemaspace:siehe oben)
Wie bekomme ich im XSLT-Template diese HTML-Knoten 1:1 in die Ausgabedatei?
xsl:copy-of http://selfhtml.teamone.de/xml/darstellung/xsltelemente.htm#copy_of
Grüße
Thomas
Hallo XML-Spezialisten,
Danke, Danke ;-) und Hallo
Die Vorgabe für das XML-Dokument erfolgt mit XML-Schema. Muß ich alle HTML-Elemente und deren Attribute in diesem XML-Schema selbst definieren oder gibt es eine bequemere Möglichkeit dazu?
Du kannst die sogenannte Wildcard in XML-Schema verwenden:
Über das xs:any-Element kannst du beliebige Tags zulassen und diese z.B. auf den (X)HTML-Namensraum einschränken
<xs:any namespace="http://www.w3.org/1999/xhtml">
Oder auch - wie ja bereits gesagt - CDATA-Section.
Gruß
Franz