PHP DOM formatOutput只使用一次XML文件

时间:2017-05-15 07:27:46

标签: php xml dom

我正在处理XML文件。表单中的数据转到此文件。 首先,我使用root标签创建新的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>

1 个答案:

答案 0 :(得分:1)

我发现了错误。必须加载formatOutput和preserveWhiteSpace:

$doc = new DOMDocument('1.0');

$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;

$doc->load('path/filename.xml');

感谢@kodmanyagha提供链接。