2
我決定用SimpleXMLElements無法做到這一點。我一直在閱讀PHP DOMDocument手冊,我認爲我可以通過迭代來實現,但這似乎效率低下。有沒有更好的方式不會發生在我身上?如何輕鬆地將兩個具有相同父節點的XML文檔合併到一個文檔中?
僞碼上下的迭代求解:
// two DOMDocuments with same root element
$parent = new ...
$otherParent = new ...
$children = $parent->getElementByTagName('child');
foreach ($children as $child) {
$otherParent->appendChild($child);
}
爲清楚起見,我有兩個看起來像這樣兩個XML文檔:
<parent>
<child>
<childOfChild>
{etc, more levels of nested XML trees possible}
</childOfChild>
</child>
<child>
<childOfChild>
{etc, more levels possible}
</childOfChild>
</child>
</parent>
而且我想這樣的輸出:
<parent>
{all children of both original XML docs, order unimportant, that preserves any nested XML trees the children may have}
<parent>
謝謝,這個工程。我希望有一種不使用迭代的方法,但我想如果我想堅持標準而不使用DOMDocumentFragment :: appendXML()。 – 2012-04-26 22:46:27
@ErikaE:從技術上講,將XML放在那裏也可以,但我認爲這幾乎是相同的例程,您需要迭代文檔的元素子元素以獲得「innerXML」。 – hakre 2012-04-26 22:48:23