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