使用createElement的自闭标签

时间:2011-09-24 14:13:29

标签: php xml dom

我需要在PHP中使用DOM为XML文件添加一个自动关闭标记,但我不知道如何,因为标准地说,这个标记看起来像这样:

<tag></tag>

但它应该是这样的:

<tag/>

2 个答案:

答案 0 :(得分:13)

DOM将自动为您执行此操作

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

默认情况下会给出

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

除非你做

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

然后会给出

<?xml version="1.0" encoding="UTF-8"?>
<foo></foo>

答案 1 :(得分:0)

只需将node参数传递给DOMDocument::saveXML,以便只输出特定节点,而不需要任何XML声明:

$doc = new \DOMDocument('1.0', 'UTF-8');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = false;
$node = $doc->createElement('foo');

// Trimming the default carriage return char from output
echo trim($doc->saveXML($node)); 

将给出

<foo/>

包含任何新的行/回车结束字符。