我正在使用PHP生成XML,我使用DomDocument生成XML标记,如何使用DomDocument创建自我关闭标记?
$doc2 = new DOMDocument();
$root2 = $doc2->createElement('root', '');
预期产出:
<?xml version="1.0"?><root/>
实际结果:
<?xml version="1.0"?><root></root>
还有其他方法可以生成自我关闭标记吗?
PS:请不要关闭该问题,因为我不认为这是重复的。感谢。
答案 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>