如何使用DomDocument编写XML自闭标签

时间:2014-05-13 04:33:14

标签: php xml xml-parsing xml-serialization domdocument

我正在使用PHP生成XML,我使用DomDocument生成XML标记,如何使用DomDocument创建自我关闭标记?

$doc2 = new DOMDocument();
$root2 = $doc2->createElement('root', '');

预期产出:

<?xml version="1.0"?><root/>

实际结果:

<?xml version="1.0"?><root></root>

还有其他方法可以生成自我关闭标记吗?

PS:请不要关闭该问题,因为我不认为这是重复的。感谢。

1 个答案:

答案 0 :(得分:4)

为createElement()提供空字符串第二个参数会向元素节点添加一个空的textnode。元素不为空,无法优化。如果没有参数DOM,则优化XML。

$dom = new DOMDocument();
$dom->appendChild($dom->createElement('root'));
echo $dom->saveXml();

输出:

<?xml version="1.0"?>
<root/>

这是saveXml()的一个选项,以避免优化。

$dom = new DOMDocument();
$dom->appendChild($dom->createElement('root'));
echo $dom->saveXml(NULL, LIBXML_NOEMPTYTAG);

输出:

<?xml version="1.0"?>
<root></root>