我需要为存储在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\"?>
部分?
答案 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>