Przy pomocy DOMDocument tworzę dokument XML. Stosując preserveWhiteSpace = false i formatOutput = true tworzę czytelny i pięknie sformatowany plik. Następnie (przy kolejnym wywołaniu skryptu) wczytuję ten plik i dodaję do niego jeden węzeł i również ustawiam te co poprzednio właściwości dotyczące formatowania, lecz treść od nowego węzła nie jest sformatowana.
//Tak tworzę dokument: $this->dom = new DOMDocument('1.0', 'utf-8'); $this->dom->formatOutput = true; $this->dom->preserveWhitespace = false; $errors = $this->dom->createElement('errors'); $errors->appendChild($this->createErrorNode()); $this->dom->appendChild($errors); file_put_contents($this->file,$this->dom->saveXML()); //A tak dodaję nowy węzeł $this->dom = new DOMDocument('1.0','utf-8'); $this->dom->formatOutput = true; $this->dom->preserveWhitespace = false; @$this->dom->load($this->file); $aErrors = $this->dom->getElementsByTagName('errors'); $errors = $aErrors->item(0); $errors->appendChild($this->createErrorNode()); file_put_contents($this->file,$this->dom->saveXML());