Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在XML节点中创建空值_Php_Xml_Domdocument - Fatal编程技术网

Php 无法在XML节点中创建空值

Php 无法在XML节点中创建空值,php,xml,domdocument,Php,Xml,Domdocument,我试图将一个子元素附加到XML节点 $rel->appendChild($domtree->createElement('title',NULL)); 我希望它像这样输出 <title></title> 但是我得到了这个 <title/> 如何使用空值创建此节点?您需要显式添加一个空文本节点: $title = $domtree->createElement('title'); $title->appendChild($d

我试图将一个子元素附加到XML节点

$rel->appendChild($domtree->createElement('title',NULL));
我希望它像这样输出

<title></title>

但是我得到了这个

<title/>


如何使用空值创建此节点?

您需要显式添加一个空文本节点:

$title = $domtree->createElement('title');
$title->appendChild($domtree->createTextNode(''));
$rel->appendChild($title);
createElement()
的第二个参数是非标准的,我个人不使用它,因为它可能会产生像这样稍微不直观的行为


在我看来,您应该始终明确地创建文本节点。这样做的另一个原因是,文本节点会自动正确处理转义,这与非标准的第二个参数不同,后者要求您手动转义文本数据。

以下是如何从数组(包括空元素)轻松构建xml供以后参考:

结果:

<?xml version="1.0" encoding="UTF-8"?>
<test>
    <foo>foo</foo>
    <bar>bar</bar>
    <baz>
       <empty></empty>
    </baz>
</test>

福
酒吧

问问题的人做了与你想做的相同的事情:那又怎样,我得到了答案。。。
<?xml version="1.0" encoding="UTF-8"?>
<test>
    <foo>foo</foo>
    <bar>bar</bar>
    <baz>
       <empty></empty>
    </baz>
</test>