【问题标题】:PHP DOM formatOutput work with XML file only one timePHP DOM 格式输出仅使用 XML 文件一次
【发布时间】:2017-10-13 21:28:45
【问题描述】:

我正在处理 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>

【问题讨论】:

  • 这可能是一个错误。请您检查一下:kslt.tk/domdocument
  • 如果将preserveWhiteSpace 设置为true 会发生什么?这只是一个猜测......对不起。

标签: php xml dom


【解决方案1】:

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

$doc = new DOMDocument('1.0');

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

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

感谢@kodmanyagha 提供链接。

【讨论】:

  • 啊,是的,这很有道理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
相关资源
最近更新 更多