格式化 SimpleXMLElement

Formatting SimpleXMLElement

根据 this answer 可以输出格式化的 xml。然而这个 php 代码:

$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><data></data>");
$xml->addChild("child1", "value1");
$xml->addChild("child2", "value2");

$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
echo $dom->saveXML();

输出value1 value2

那么现在如何正确格式化呢?

要回显格式化的 XML(或 HTML),您必须使用 htmlentities 内置函数,即“将所有适用字符转换为 HTML 实体” .

你的情况:

echo htmlentities($dom->saveXML());

将输出:

<?xml version="1.0" encoding="utf-8"?> <data> <child1>value1</child1> <child2>value2</child2> </data>

<pre> html标签一起使用,也会打印换行符和空格:

echo '<pre>' . htmlentities($dom->saveXML()) . '</pre>';

将输出:

<?xml version="1.0" encoding="utf-8"?>
<data>
    <child1>value1</child1>
    <child2>value2</child2>
</data>