Я работаю с XML-файлом. Данные из формы отправляются в этот файл.
Прежде всего я создаю новый XML-файл с корневым тегом:
$doc = new DOMDocument('1.0')
$root = $doc->createElement('users');
$doc->appendChild($root);
$doc->save('path/filename.xml');
Затем программа откроет этот файл и добавит новые данные:
$doc = new DOMDocument('1.0');
$doc->load('path/filename.xml');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;
...adding some data...
$doc->save('path/filename.xml');
Когда моя программа добавляет данные в первый раз, formatOutput выглядит хорошо:
<users>
<user>
<name>Username1</name>
</user>
</users>
Но когда программа добавляет данные снова, formatOutput не работает:
<users>
<user>
<name>Username1</name>
</user>
<user><name>Username2</name></user><user><name>Username3</name></user></users>
Я нахожу ошибку. formatOutput и preserveWhiteSpace должны быть загружены:
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;
$doc->load('path/filename.xml');
Спасибо @kodmanyagha за ссылку.
Других решений пока нет …