FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Hard- und Softwarefragen

XML, PHP und gemischte Inhalte

XML, PHP und gemischte Inhalte 2007-02-17 18:05
Popcorn
Ich lese derzeit XML-Daten mit PHPs SimpleXML aus. Das geht so lange gut, bis die Inhalte (gewollt) kaputtes HTML enthalten. Es wird mit Kommentaren, Tags und Encodierungen herumgeworfen. Und das bringt SimpleXML da ziemlich aus dem Tritt. Anstatt vom öffnenden Tag einfach alles bis zum schließenden einzusaugen, gibt es dann Fehlermeldungen über falschen Inhalt. Auch den Inhalt mit der speziellen Anweisung ->asXML() einzulesen half nicht weiter.

Gibt es innerhalb von PHP noch andere gescheite Lösungen dazu? Denn das SimpleXML mit solchen gemischten Inhalte wirklich Probleme hat und es nicht unbedingt an meiner mangelnden Erfahrung zu liegen hat, habe ich zwischendurch auch schon gelesen.

Re: XML, PHP und gemischte Inhalte 2007-02-17 18:48
Da:Sourcerer
Du kannst ja mal in der entsprechenden Kategorie bei PEAR gucken, ob du da was passendes findest. Ansonsten hülfe vielleicht ein Beispiel von den Daten, die du einzulesen versuchst…

Re: XML, PHP und gemischte Inhalte 2007-02-17 18:52
joda_der_weise
Ich lese derzeit XML-Daten mit PHPs <a href="http://de.php.net/simplexml">SimpleXML</a> aus. Das geht so lange gut, bis die Inhalte (gewollt) kaputtes HTML enthalten. Es wird mit Kommentaren, Tags und Encodierungen herumgeworfen. Und das bringt SimpleXML da ziemlich aus dem Tritt. Anstatt vom öffnenden Tag einfach alles bis zum schließenden einzusaugen, gibt es dann Fehlermeldungen über falschen Inhalt. Auch den Inhalt mit der speziellen Anweisung ->asXML() einzulesen half nicht weiter.

Gibt es innerhalb von PHP noch andere gescheite Lösungen dazu? Denn das SimpleXML mit solchen gemischten Inhalte wirklich Probleme hat und es nicht unbedingt an meiner mangelnden Erfahrung zu liegen hat, habe ich zwischendurch auch schon gelesen.

Du willst also im Grunde, dass Dein Parser nicht korrekt funktioniert, damit Du eine von Dir gewollte Ausgabe erhällst?? LOL
Wenn die Konvertierung nicht läuft, dann solltest Du versuchen an Deiner Eingabe (auch XML hat Schemata an die man sich halten sollte und dann ist alles gut…) was zu drehen!

Re: XML, PHP und gemischte Inhalte 2007-02-17 19:02
ethrandil
Nunja, das bekommst du nur hin wenn du den parser dazu bringst, den Elementinhalt des entsprechenden Knotens als TEXT zu interpretieren.
Dann bekommst du den ganzen kaputten html-code als String.
Anders geht es imho nicht. Ich weiß jetzt auch nicht, ob und wie das mit PHP möglich ist.

- eth

Re: XML, PHP und gemischte Inhalte 2007-02-17 19:36
Anonymer User
Anstatt vom öffnenden Tag einfach alles bis zum schließenden einzusaugen, gibt es dann Fehlermeldungen über falschen Inhalt.
Dass "einfach alles … einzusagen" ist nicht so einfach, sondern wäre eine spezielle Fehlerbehandlung, die Du Dir gerade wünscht.

So weit ich weiß, ist aber in der XML-Spezifikation gerade folgendes beschrieben: Falls ein Dokument nicht wohlgeformt ist, dann darf ein Parser nicht "sinnvoll raten", sondern muss einen Fehler liefern und darf den Rest des Dokuments nicht mehr normal weiterverarbeiten.

Man wollte in XML gerade nicht mehr die Fehlertoleranz haben, die man in HTML hatte.

LEIFer

Re: XML, PHP und gemischte Inhalte 2007-02-17 20:26
Popcorn
Ne halt, einige haben hier glaube ich etwas missverstanden. Das XML darf und soll auch wohlgeformt sein. Aber dennoch möchte ich die Freiheit haben - das war wohl etwas missverständlich ausgedrückt - einen Inhalt nach meinem belieben zu speichern. Und was ich halt möchte ist, dass dieser Inhalt nicht als Struktur gewertet wird, oder wie ehtrandil es formuliert, es als Text zu interpretieren.

Das Problem dabei ist halt, dass ich weder encodieren, escapen noch auskommentieren kann, weil genau solche Sachen auch im Inhalt vorkommen und sich dann gegenseitig zerkloppen oder im Nachhinein nicht mehr ersichtlich ist, wo nun für XML so etwas verwendet wurde und wo es Bestandteil des Inhalts ist.

Meine Hoffnung wäre also etwas wie [tag hier_gilt='erst wenn dieser tagname geschlossen wird, ist der Inhalt zuende'] zu haben.

Beispiele für den Inhalte? Jegliche Arten von XSS-Angriffen etwa.

Re: XML, PHP und gemischte Inhalte 2007-02-17 22:07
Da:Sourcerer
Ich möchte dazu dann einfach mal sagen: Igitt!!! Kannst du das nicht irgendwie mit serialize() machen, anstatt mit XML herumzupanschen?

Re: XML, PHP und gemischte Inhalte 2007-02-17 22:23
Popcorn
Der Gedankensprung war mir jetzt etwas zu groß. Serialisieren von XML-Daten, dazu ist ja schon asXML() da. Das hilft hier auch nichts. War Dein Vorschlag jetzt, auf XML zu verzichten? Nein, das ist eigentlich so gar nicht dass was ich im Sinn habe. Igitt? Igitt wäre es doch nur, wenn man durch ein System bzgl. seiner Eingabemöglichkeiten limitiert wird.

Re: XML, PHP und gemischte Inhalte 2007-02-17 22:42
Popcorn
Sag ich doch, dass es so etwas geben muss: http://en.wikipedia.org/wiki/CDATA_section

Blöd nur, dass SimpleXML das nicht unterstützt, aber Hauptsachel das XML stimmt jetzt. Das ist ja schon mal etwas.

Edit: Ich revidiere, es geht neuerdings doch mit SimpleXML, ich hatte beim Test nur noch nicht die Serialisierung raus, womit dann auch das CDATA übernommen wurde. Jetzt stellt er alles wie gewünscht freit.

Re: XML, PHP und gemischte Inhalte 2007-02-18 14:06
Da:Sourcerer
Der Gedankensprung war mir jetzt etwas zu groß. Serialisieren von XML-Daten, dazu ist ja schon asXML() da. Das hilft hier auch nichts. War Dein Vorschlag jetzt, auf XML zu verzichten?

Um das nur noch abzuschließen: Ja, ganz genau das war mein Gedanke.