ReHi,
Überprüfe, ob der Code der speichern soll auch tatsächlich zur Ausführung kommt. (In deinem Beispiel davor ist er ja von einer Bedingung abhängig.)
Da ich über $xnode (also via foreach ($xnode->childNodes...) den zu löschenden Inhalt nochmal ausgeben kann, gehe ich davon aus, dass die Ausführung gegeben ist.
Und überprüfe das „unangetastet bleiben“ der Datei auch wirklich vernünftig – ggf. spielt dir da nur der Cache deines Browsers einen Streich.
Klaro- direktes Editieren der XML-Datei zeigt, dass alles beim Alten bleibt.
Trotzdem könntest du recht haben, dass die Datei sehr wohl "angetastet" wird. Das ergäbe dann aber wohl das Mysterium, dass
$xnode=$node->parentNode->removeChild($node);
Zwar einen funktionstüchtigen $xnode liefert, aber nichts löscht. Tja...
(Habe übrigens auch schon versucht, vorher noch die childNodes zu löschen, hat aber auch nix gebracht).
Greets
DMC