1

次の 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も見ましたが、新しいルート ノードを追加できないようです。

4

2 に答える 2

1

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);
于 2013-03-08T00:24:14.123 に答える