SimpleXMLElementsでこれを行う方法がないと判断しました。私はPHPのDOMDocumentのマニュアルを読んでいますが、私は反復でそれを行うことができると思いますが、それは非効率的です。私にはうまくいかない方法がありますか?同じ親ノードを持つ2つのXML文書を1つの文書に簡単に結合するにはどうすればよいですか?
擬似コードっぽい反復解法:明確にするために
// two DOMDocuments with same root element
$parent = new ...
$otherParent = new ...
$children = $parent->getElementByTagName('child');
foreach ($children as $child) {
$otherParent->appendChild($child);
}
、私は両方を次のようになり2つの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()を使用しない場合はありません。 –
@ErikaE:技術的には、そこにXMLをドロップすることもできますが、ほぼ同じルーチンだと思うし、 "innerXML"を取得するには、ドキュメントの要素の子を繰り返し処理する必要があります。 – hakre