Witam!
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.

  1. //Tak tworzę dokument:
  2. $this->dom = new DOMDocument('1.0', 'utf-8');
  3. $this->dom->formatOutput = true;
  4. $this->dom->preserveWhitespace = false;
  5.  
  6. $errors = $this->dom->createElement('errors');
  7. $errors->appendChild($this->createErrorNode());
  8. $this->dom->appendChild($errors);
  9.  
  10. file_put_contents($this->file,$this->dom->saveXML());
  11.  
  12.  
  13. //A tak dodaję nowy węzeł
  14. $this->dom = new DOMDocument('1.0','utf-8');
  15. $this->dom->formatOutput = true;
  16. $this->dom->preserveWhitespace = false;
  17.  
  18. @$this->dom->load($this->file);
  19.  
  20. $aErrors = $this->dom->getElementsByTagName('errors');
  21. $errors = $aErrors->item(0);
  22.  
  23. $errors->appendChild($this->createErrorNode());
  24. file_put_contents($this->file,$this->dom->saveXML());