格式化SimpleXMLElement

时间:2016-01-30 13:39:18

标签: php xml dom pretty-print

根据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

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

1 个答案:

答案 0 :(得分:1)

要回显格式化的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>