SimpleXML und CDATA

Deine Karriere im Energievertrieb
Werbung

Wenn man in PHP XML Daten verarbeiten will, so bietet sich insbesondere seit der Version 5 SimpleXML an. Damit lassen sich XML Dateien auf einfache weise handhaben.

Ein Problem ergibt sich jedoch bei der Verarbeitung. CDATA wird ignoriert, d.h. alle Daten, die von CDATA eingefasst sind,werden nicht angezeigt.ECHT VITAL VITAMIN C - 1 Dose mit 100 g Pulver

Werbung


Hier ein Beispiel. Wenn man die folgende XML Datei mit SimpleXML verarbeitet…

<?xml version="1.0" encoding="utf-8"?>
<data>
    <elem><&#91;CDATA&#91;Hier ist' s schön angenehm >> Hier bleibe ich]]></elem>
</data>

…so wird der Inhalt zwischen <elem> und </elem> ignoriert. Als ich dieses Proglem das erste (und auch letzte) mal hatte, fand ich jede Menge mehr oder weniger sinnvolle Lösungsansätze. Dabei wäre es doch so einfach gewesen.
Ein Blick auf php.net zum Thema Simple XML hätte genügt. Dort findet man nämlich, dass man man als zusätzlichen Parameter weitere Optionen mit angeben kann. U.a. auch LIBXML_NOCDATA, welches bewirkt, dass CDATA Inhalte als normaler Text behandelt werden.

// XML aus Datei laden
simplexml_load_file('xmlfile.xml', null, LIBXML_NOCDATA);
// XML aus String lesen
simplexml_load_string($strXML, null, LIBXML_NOCDATA);
Deine Karriere im Energievertrieb
Werbung

Schreibe einen Kommentar