¿Cómo puedo combinar fácilmente dos documentos XML con el mismo nodo principal en un solo documento?

Decidí que no hay manera de hacer esto con SimpleXMLElements. He estado leyendo el manual PHP DOMDocument y creo que podría hacerlo con iteración, pero eso parece ineficiente. ¿Hay una mejor manera de que no se me ocurra?

Psuedocode-ish solución iterativa:

<code>// two DOMDocuments with same root element
$parent = new ...
$otherParent = new ...

$children = $parent->getElementByTagName('child');
foreach ($children as $child) {
   $otherParent->appendChild($child);
}
</code>

Para mayor claridad, tengo dos documentos XML que se ven así:

<code>    <parent>
      <child>
        <childOfChild>
           {etc, more levels of nested XML trees possible}
        </childOfChild>
      </child>
      <child>
        <childOfChild>
           {etc, more levels possible}
        </childOfChild>
      </child>

</parent>
</code>

Y me gustaría una salida como esta:

<code><parent>
  {all children of both original XML docs, order unimportant, that preserves any nested XML trees the children may have}
<parent>
</code>

Respuestas a la pregunta(1)

Su respuesta a la pregunta