Andreas Dölling: Frage zu domxml_open_file

Hallo,

ich lese in einer Anwendung HTML-Dateien mittels domxml_open_file() ein, um dann Operationen im DOM-Baum auszuführen.
Den manipulierten DOM-Baum lese ich dann mit html_dump_mem() aus, um ihn in die Datei zurückzuschreiben.

Das klappt grundsätzlich sehr gut.

Leider stellen sich aber folgende unerwünschte Nebenefekte ein:

  • jeglicher Whitespace verschwindet, d.h. der HTML-Code ist nachher völlig unlesbar
  • leere Elemente werden unnötigerweise aufgebläht in ein öffnendes und ein schließendes Tag, so daß aus <img src="" /> z.B. <img src=""></img> wird
  • nich schlimmer ist, daß in alle Elemente alle verfügbaren Attribute mit ihren Defaultwerten geschrieben werden, so daß aus <td> ein <td colspan="1" rowspan="1"> wird - völlig unnötig

Mein Aufruf der Funktion lautet im Moment so:
@domxml_open_file($document_path,
   DOMXML_LOAD_PARSING +
   DOMXML_LOAD_COMPLETE_ATTRS +
   DOMXML_LOAD_SUBSTITUTE_ENTITIES +
   DOMXML_LOAD_DONT_KEEP_BLANKS,
   $errors
)

Ich dachte daran, daß naheliegenderweise die Nebeneffekte verurscaht werden durch die Parameter DOMXML_LOAD_COMPLETE_ATTRS, DOMXML_LOAD_SUBSTITUTE_ENTITIES und DOMXML_LOAD_DONT_KEEP_BLANKS.

Wenn ich diese Parameter aber weglasse, dann wird offenbar der DOM-Baum nicht mehr richtig eingelesen, zumindest werden meine Operationen im DOM-Baum nicht mehr ausgeführt (finden von Glossarbegriffen).

Kennt jemand von Euch vielleicht diese Problematik?
Weiß vielleicht jemand, wo ich eine vollständige Dokumentation auch der Konstanten DOMXML_LOAD_DONT_KEEP_BLANKS etc. finde (unter www.php.net ja leider nicht...).

Würde mich über jegliche Tips freuen!

Thanx und ciao,
Andreas