当我使用以下代码将 XML DOM 元素插入我从 XML 文件加载的现有 XML DOM 元素中时,我的新元素都没有正确格式化,它们只是显示在一行上
<?php
$dom = DOMDocument::load('file.xml');
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//output: everything looks normal but the new nodes are all on one line.
?>
我发现可以将 LIBXML_NOBLANKS 传递给 load 方法,它会重新格式化整个文档,包括我添加的内容。
<?php
$dom = DOMDocument::load('file.xml', LIBXML_NOBLANKS);
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//输出:所有内容看起来都重新格式化了,包括新节点
?>
希望这有帮助,我花了几个小时的反复试验才弄清楚这一点!