Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
[XML] HTML-Tags in XML
- Ersteller Saschlong
- Erstellt am
HoRnominatoR
Lt. Junior Grade
- Registriert
- Dez. 2004
- Beiträge
- 302
wenn sie valide sind, ja.
edit:
bzw nein. in xml kannst du nur xhtmlkonforme tags verwenden.
edit:
bzw nein. in xml kannst du nur xhtmlkonforme tags verwenden.
[UPS]Erazor
Lieutenant
- Registriert
- Sep. 2002
- Beiträge
- 753
Genau dafür wurde XHML entwickelt.
Du kannst in XML keine Tags ohne Endtag einfügen.
Das wäre z.B. halbwegs valider HTML Code.
In XHTML würde das so aussehen:
Du musst also XML konform abgeschlossene Tags ohne Inhalt oder korrektes Anfangs- und Endtag haben. Die Verschachtelung muss auch in der richtigen Reihenfolge wieder aufgelöst werden.
Wie gesagt. genau für diesen Zweck wurde XHTML entwickelt. Schau dir also die Spezifikationen davon an.
HTH, Erazor
Du kannst in XML keine Tags ohne Endtag einfügen.
HTML:
<p>Absatz<br>mehr<br>zeilig</p>
In XHTML würde das so aussehen:
HTML:
<p>Absatz<br />mehr<br />zeilig</p>
Wie gesagt. genau für diesen Zweck wurde XHTML entwickelt. Schau dir also die Spezifikationen davon an.
HTH, Erazor
- Registriert
- Feb. 2004
- Beiträge
- 266
Dadd weiß ich ja.
Mir gehts's drum ob's geht ein XML-Tag zu parsen das HTML-Tags enthält, der Parser dann das XML-Tag als Container erkennt und die HTML-Tags später richtig erkennt und darstellt.
Z.B. für'n einfaches Newsscript...
Mir gehts's drum ob's geht ein XML-Tag zu parsen das HTML-Tags enthält, der Parser dann das XML-Tag als Container erkennt und die HTML-Tags später richtig erkennt und darstellt.
Z.B. für'n einfaches Newsscript...
matsche
Cadet 4th Year
- Registriert
- Apr. 2004
- Beiträge
- 103
Na ja, willst du die in das XML-Container-Tag eingebetteten HTML-Elemente später "nur" ausgeben, ohne daß der XML-Parser sie als XML-Elemente erkennt, dann mußt du sie ganz gewöhnlich als CDATA behandeln lassen. Sprich, du mußt alle XML-kritischen Zeichen escapen (bestes denglisch).
Beispiel:
Beabsichtigst du allerdings, daß der XML-Parser die eingebetteten Elemente als ganz normale XML-Elemente erkennt, aber sie von den anderen XML-Elementen differenzierbar sind, dann ist es am sinnvollsten, wenn du die HTML-Tags in einen eigenen Namensraum packst. Zum Bleistift so:
(Mehr über XML Namespaces gibt's zB hier in deutsch: http://www.schumacher-netz.de/TR/1999/REC-xml-names-19990114-de.html )
Gruß,
Matsche
Beispiel:
Code:
<container>
<h1>Ich bin ein HTML-Tag</h1><p>Das ist ein Beispiel</p>
</container>
Code:
<xmlrootelement xmlns:xhtml="http://www.w3.org/1999/xhtml">
...
<irgendeinXMLTag>
<!-- als container zB ein div-Element -->
<xhtml:div>
<xhtml:h1>Ich bin ein HTML-Tag</xhtml:h1><xhtml:p xhtml:style="sonstwas">Das ist ein Beispiel</xhtml:p>
</xhtml:div>
</irgendeinXMLTag>
...
</xmlrootelement>
Gruß,
Matsche
Zuletzt bearbeitet:
(Fehler beseitigt)
- Registriert
- Feb. 2004
- Beiträge
- 266
Ah, cool das meinte ich, mit 'denglisch' meinst Du die Umlaute, oder?
Ich hätte nicht gedacht, das das so relativ einfach geht...
Jetzt müsste ich nur 'nen schicken Parser finden, ihr wisst da nicht zufällig einen?
Auf jeden Fall Danke schon mal!
Ich hätte nicht gedacht, das das so relativ einfach geht...
Jetzt müsste ich nur 'nen schicken Parser finden, ihr wisst da nicht zufällig einen?
Auf jeden Fall Danke schon mal!
matsche
Cadet 4th Year
- Registriert
- Apr. 2004
- Beiträge
- 103
Ne, mit "denglisch" meinte ich eigentlich: Englische Begriffe vergewaltigen und eindeutschen, oder andersum
Die Zeichen, welche für XML eine besondere Bedeutung haben (und die du folglich 'escapen' mußt) sind jene hier:
& : &
< : <
> : >
" : "
' : '
Du mußt natürlich diese Zeichen dann für die HTML-Ausgabe wieder rückkonvertieren!
Über die Umlaute brauchst du dir keine Gedanken machen, solange du im XML-Dokument im Prolog den Zeichensatz angibst.
Beispiel für latin-1:
Beim Parser kommt's drauf an, welche Programmiersprache du benutzt. Grundsätzlich läßt sich aber sagen, daß es für fast jede einen anständigen Parser gibt.
Für Java oder C++ kann ich dir zB den Xerces empfehlen.
Für andere Sprachen hilft dir sicher Google weiter.
Gruß,
Matsche
Die Zeichen, welche für XML eine besondere Bedeutung haben (und die du folglich 'escapen' mußt) sind jene hier:
& : &
< : <
> : >
" : "
' : '
Du mußt natürlich diese Zeichen dann für die HTML-Ausgabe wieder rückkonvertieren!
Über die Umlaute brauchst du dir keine Gedanken machen, solange du im XML-Dokument im Prolog den Zeichensatz angibst.
Beispiel für latin-1:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
Beim Parser kommt's drauf an, welche Programmiersprache du benutzt. Grundsätzlich läßt sich aber sagen, daß es für fast jede einen anständigen Parser gibt.
Für Java oder C++ kann ich dir zB den Xerces empfehlen.
Für andere Sprachen hilft dir sicher Google weiter.
Gruß,
Matsche
[UPS]Erazor
Lieutenant
- Registriert
- Sep. 2002
- Beiträge
- 753
PHP hat doch 2 XML Parser eingebaut. SimpleXML und den anderen hab mit beiden noch nichts gemacht, weiß aber dass se drin sind
[UPS]Erazor
Lieutenant
- Registriert
- Sep. 2002
- Beiträge
- 753
Gute EinstellungSaschlong schrieb:Lieber blöd gefragt, als blöd geblieben!
Wie kann ich das abschließende ]]> escapen? Die Antwort hatte mir mein XML Prof bisher verwehrt...rIQ schrieb:<xmlelement>
<![cdata[ dieser Text wird unformatiert übernommen]]>
</xmlelement>
Natürlich damit der User kein ]]> in seinen Beitrag einfügen kann, um damit die Datenstruktur zu zerstören...
Wobei das eigentlich in die Kategorie "versuchter HTML-Tag" fallen sollte und somit in ]]> umgewandelt werden dürfte, BEVOR es in die XML-Datei geschrieben wird...
Wobei das eigentlich in die Kategorie "versuchter HTML-Tag" fallen sollte und somit in ]]> umgewandelt werden dürfte, BEVOR es in die XML-Datei geschrieben wird...
[UPS]Erazor
Lieutenant
- Registriert
- Sep. 2002
- Beiträge
- 753
fast... mit <![CDATA[ (unbehandelter Text) ]]> kann man alles als normalen Text behandeln lassen.</Life> schrieb:Natürlich damit der User kein ]]> in seinen Beitrag einfügen kann, um damit die Datenstruktur zu zerstören...
Wobei das eigentlich in die Kategorie "versuchter HTML-Tag" fallen sollte und somit in ]]> umgewandelt werden dürfte, BEVOR es in die XML-Datei geschrieben wird...
Wenn ich jetzt also plain text reinschreibe, der auch plain bleiben soll würde ich gerne ]]> escapen können. Kann ja sein, dass irgendjemand einen Plaintext über XML schreibt und <![CDATA[ ]]> erwähnt. Dann wär ich am Arsch
Hab gerada bei w3c.org/xml geschaut. Die schreiben zwar was CDATA Sections sind und dass diese ']]>' nicht enthalten dürfen aber wie mans escapet, sagt wieder niemand...
Oder hab ich nur was übersehen?
edit: gerade Versuche gemacht. ]]> geht auch nicht, weil ]]> als einziges Markup interpretiert wird, wie in der Doku steht. Ich krieg das echt nicht escapet, ist ja zum kotzen...
Zuletzt bearbeitet:
[UPS]Erazor
Lieutenant
- Registriert
- Sep. 2002
- Beiträge
- 753
Jo, wärs. Hab jetzt schon in einigen Quellen gelesen, dass man drauf achten soll, dass ]]> nicht im Text vorkommt. Dann muss man so Daten wohl vollständig enkodieren mit base64 oder so. Finds aber ziemlich seltsam.
Ähnliche Themen
- Antworten
- 4
- Aufrufe
- 705