Mailinglisten-Archive |
Yannik Hampe schrieb: > > Christian Wohlgemuth wrote: >> Hallo Liste, >> >> Dazu habe ich noch eine grundlegende Frage: >> Was sind die Vor/Nachteile zwischen dem Erstellen von Dokumenten mit DOM >> und dem 'klassischen' <tag><?php echo $value; ?></tag> ? > > Also wenn, dann bitte > <tag><?php echo htmlspecialchars($value); ?></tag> ?> > denn ansonsten kann es, wie von anderen hier in der Liste bereits gesagt > zu inkorrekten xml-code kommen... > > Vorteil der DOM-Methode ist, dass du ständig den kompletten xml-Baum im > Speicher hast und ständig den Zugriff auf alle Elemente hast. Du kannst > so nochmal etwas nachgucken, was du bereits im Baum hast und du kannst > an jeder beliebigen Stelle einen Tag hinzufügen. Nicht nur am Ende, wie > bei der echo-Methode. > Ein weiterer Vorteil ist, dass die Ausgabe von der DOM immer garantiert > gültiges xml ist. Wenn du manuell generierst, kann es schonmal > passieren, dass du vergisst einen Tag zu schliessen. Generell schützt > dich das aber nicht vor unsinnigen Ausgaben, wenn du die Elemante an der > falschen Stelle einordnest etc ;-). Was mich noch interessieren würde, wenn ich ein XML-Dokument per DOM erstelle, ob DOM gleich kontrolliert, ob alles auch der DTD entspricht. Werde ich mal bei gegebener Zeit überprüfen.... > > Wenn du die genannten Funktionen nicht brauchst, ist es jedoch ziemlich > unsinnig die DOM zu nehmen, da diese einen erhöten Bedarf an CPU und RAM > stellt. Eine gute "Mittellösung" für das Problem ist phps XMLWriter: > <?php > header('Content-Type: application/xml'); > $out =new XMLWriter(); > $out->openURI('php://output'); > $out->startDocument(); > $out->writeRaw('<?xml-stylesheet href="dein_xslt_doc.xsl" > type="text/xsl" ?>'); > // ... Jetzt mit Hilfe von $out->startElement,... xml schreiben > $out->endDocument(); > ?> > > Und schon hast du sehr effizient und trotzdem garantiert Syntaktisch > korrektes xml erzeugt. (solange das writeRaw da oben natürlich richtig > war ;-)). > >> vielen Dank, >> Christian > > Yannik Christian
php::bar PHP Wiki - Listenarchive