Mailinglisten-Archive |
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 ;-). 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
php::bar PHP Wiki - Listenarchive