添加新的XML根节点
问题描述:
我需要在一个新的根节点添加到下面的XML添加新的XML根节点
<?xml version="1.0"?>
<unit>
<source>
<id>ANCH02</id>
<uri>http://www.hamiltonisland.biz/tabid/339/Default.aspx</uri>
</source>
</unit>
成为
<?xml version="1.0"?>
<units>
<unit>
<source>
<id>ANCH02</id>
<uri>http://www.hamiltonisland.biz/tabid/339/Default.aspx</uri>
</source>
</unit>
</units>
我怎么能这样做?它似乎不像SimpleXMLElement具有此功能。我也看过这个DomNode示例http://php.net/manual/en/domnode.insertbefore.php,但它似乎不能添加到新的根节点中。
答
DOM文档:
$yourDOMDOMDocument ... <--- already loaded XML
$doc = new DOMDocument();
$doc->appendChild($doc->createElement('Units'));
$doc->documentElement->appendChild($doc->importNode($yourDOMDocument->documentElement));
或者。如果你有你的XML作为的SimpleXMLElement已经:
$yourSimpleXML ... <--- already loaded XML
$doc = new DOMDocument();
$doc->appendChild($doc->createElement('Units'));
$domnode = dom_import_simplexml($yourSimpleXML);
$doc->documentElement->appendChild($doc->importNode($domnode));
//if you want it back as SXE:
$newSimpleXMLElement = simplexml_import_dom($doc);
示例用'inserBefore':http://codepad.org/vwAP25St – hakre 2013-03-08 04:43:58