【发布时间】:2011-09-24 14:13:28
【问题描述】:
我需要在 PHP 中使用 DOM 向 XML 文件添加一个自关闭标签,但我不知道如何,因为标准情况下,这个标签看起来像这样:
<tag></tag>
但它应该是这样的:
<tag/>
【问题讨论】:
我需要在 PHP 中使用 DOM 向 XML 文件添加一个自关闭标签,但我不知道如何,因为标准情况下,这个标签看起来像这样:
<tag></tag>
但它应该是这样的:
<tag/>
【问题讨论】:
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>
【讨论】:
只需将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/>
不包含任何新行/回车结束字符。
【讨论】: