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