Agregar un bloque de XML como hijo de un objeto SimpleXMLElement

Tengo este objeto SimpleXMLElement con una configuración XML similar a la siguiente ...

$xml = <<<EOX
<books>
    <book>
        <name>ABCD</name>
    </book>
</books>
EOX;

$sx = new SimpleXMLElement( $xml );

Ahora tengo una clase llamada Libro que contiene información. sobre cada libro. La misma clase también puede escupir la información del libro. en formato XML similar al anterior (el bloque anidado) .. ejemplo,

$book = new Book( 'EFGH' );
$book->genXML();

... will generate
<book>
    <name>EFGH</name>
</book>

Ahora estoy tratando de encontrar una forma en la que pueda usar este bloque XML generado y adjuntarlo como un elemento secundario para que ahora parezca ... por ejemplo ...

// Non-existent member method. For illustration purposes only.
$sx->addXMLChild( $book->genXML() );    

...XML tree now looks like:
<books>
    <book>
        <name>ABCD</name>
    </book>
    <book>
        <name>EFGH</name>
    </book>
</books>

De la documentación que he leído en SimpleXMLElement,addChild () no lo hará por usted, ya que no admite datos XML como valor de etiqueta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta