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