PHPDOM: unterminated entity reference Export

WiZdooM

Erfahrenes Mitglied
Hi

Ich habe seit neustem das Pänomen, dass mein WordML/XML-Dokument nicht mehr richtig verarbeitet wird, was vor meinem Weihnachtsurlaub allerdings noch tadellos funktionierte.

Ich habe folgende Funktion, die mir eine reguläre XML oder Word.xml öffnet (je nach mode) und diese durchackert.
PHP:
function replaceNodeValue($mode, $filein, $nodeList, $fileout, $garPassNr = 0, $created = 0){
    if(file_exists($filein)){
        $xml = new DOMDocument();
        //$xml->validateOnParse=true;
        $xml->load($filein);
        
        # Datendatei erzeugen
        if($mode == "data"){
            $root = $xml->getElementsByTagName('onlinegarantie');
            $root->item(0)->setAttribute('FzGarPassNr',$garPassNr);
            $root->item(0)->setAttribute('FzGarEingangDat',$created);
            $nodes = $root->item(0)->getElementsByTagName('*');
            foreach($nodes as $node){
                foreach($nodeList as $key=>$value){
                    if($node->nodeName == $key){
                        $node->nodeValue = $value;
                    }
                }
            }
            $xml->Save($fileout); 
            $datatodb = str_replace('"','\"',$xml->SaveXML());
        }
        
        #Vertragsdatei erzeugen
        if($mode == "form"){
            $tag = $xml->getElementsByTagName('t');
            foreach($tag as $node){
                foreach($nodeList as $key=>$value){
                    if($node->nodeValue == $key){
                        $node->nodeValue = $value;
                    }
                }
            }
            
            $xml->Save($fileout);
        }
        
    }
    else echo 'No File named '.$filein.' or '.$fileout.' specified! ';
}

Jetzt tritt seit kurzem (das klingt bescheuert, aber ist wirklich so) der Fehler "unterminated entity reference Export" an dieser Stelle auf:
PHP:
if($node->nodeValue == $key){
   $node->nodeValue = $value;
 }

Entferne ich den Kommentar für das validateOnParse kommt noch ein Fehler, dass keine DTD gefunden wurde, bin jedoch nicht sicher inwiefern das für den "unterminated entity reference Export"-Fehler relevant wäre.
Die Dokumente werden aber alle einwandfrei bearbeitet und gespeichert. Ich erhalte keinerlei Fehler beim Öffnen im Browser bzw. in Word, dass das Dokument fehlerhaft wäre (wie es bei einem "&" vllt der Fall wäre), sie sind also vor und nach dem Bearbeiten soweit valide. An dem Quellcode der Funktion habe ich seit Anfang Dezember nicht mehr herumgebastelt, der hatte ja 1wandfrei funktioniert (sonst hätte ich vorher schon um Rat gefragt).

Wenn es ein PHP-Bug mit $node->nodeValue wäre, dürften in den Dokumenten ja eigentlich keinerlei Daten stehen bzw. müsste der Fehler bereits im Zweig "data" auftreten, da ich erst den Mode "data" und dann 2x den Mode "form" ausführe. Mit anderen Worten: Ich habe keinen blassen Schimmer was mir der Präprozessor mit dem Fehler "unterminated entity reference Export" überhaupt sagen will.

Weiss jemand von euch vielleicht was der Fehler zu bedeuten hat ?

Edit: Ich habe zwar noch immer keine genaue Ahnung was der Fehler eigentlich bedeutet, aber wenn ich das stur übersetze heisst das wohl, dass eine Entity (was auch immer der Parser in dem WordML als Entity ansieht) nicht korrekt (ab)geschlossen oder beendet wurde. Ich hab mir also mein valides Dokument nochmal vorgenommen und die Tags überprüft und ein bisschen was modifziert und nun geht es. Irgendwas war allem Anschein nach an der WordML-Strukur zerschossen, daher der Entity- und DTD-Fehler... Komisch nur dass Word sich davon nicht hat beeindrucken lassen und beim Öffnen und Parsen nicht gleich im Dreieck gesprungen ist.
 
Zuletzt bearbeitet:
Zurück