如何在没有xml标头的PHP中向XML元素添加属性?

时间:2017-05-07 05:17:16

标签: php xml simplexml domdocument

我需要为存储在DB中的xml元素添加一个新属性。这不是一个完整的XML,而只是数据库中的XML元素。

当我执行以下操作时,

$node_xml = simplexml_load_string('<node name="nodeA">this is a node</node>');
$node_xml->addAttribute('newattrib', "attribA");
$res_xml = $node_xml->asXML();

我得到$res_xml

"<?xml version=\"1.0\"?>\n<node name=\"nodeA\" newattrib=\"attribA\">this is a node</node>\n"

如何在不进行字符串操作的情况下消除<?xml version=\"1.0\"?>部分?

1 个答案:

答案 0 :(得分:0)

这里我们使用DOMDocument来设置标记中的属性。

<?php

ini_set('display_errors', 1);
libxml_use_internal_errors(true);
$domObject = new DOMDocument();
$domObject->loadHTML('<node name="nodeA">this is a node</node>',LIBXML_HTML_NOIMPLIED|LIBXML_HTML_NODEFDTD);
$result=$domObject->getElementsByTagName("node")->item(0);
$result->setAttribute("newattrib","attribA");
echo $result->ownerDocument->saveHTML();

输出: <node name="nodeA" newattrib="attribA">this is a node</node>