我需要在PHP中使用DOM为XML文件添加一个自动关闭标记,但我不知道如何,因为标准地说,这个标记看起来像这样:
<tag></tag>
但它应该是这样的:
<tag/>
答案 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/>
不包含任何新的行/回车结束字符。