Existe uma maneira de adicionar um SimpleXMLElement PHP para outro SimpleXMLElement?

O método "addChild" do SimpleXMLElement parece que deve ser a escolha certa, mas aparentemente só leva strings representando o tagname do novo filho.

Há a notação object-ish para referenciar nós da árvore e defini-los, por ex. $ simpleXMLNode-> child = value, mas que parece funcionar apenas com valores textuais / numéricos simples. Se eu tentar o seguinte:

$s = new SimpleXMLElement('<root/>');
$t = new SimpleXMLElement('<child/>');
$s->a = $t;
echo $s->asXML()

Eu recebo:

<?xml version="1.0"?>
<root><a></a></root>

quando eu estava esperando por:

<?xml version="1.0"?>
<root><a><child/></a></root>

Pensei em converter $ t em uma string e depois adicioná-lo (depois de remover a declaração XML):

$s->a = substr($t->asXML(),22)

Mas isso produz:

<?xml version="1.0"?>
<root><a>&lt;child/&gt;</a></root>

Mais uma vez, não o que eu estava esperando.

Existe uma maneira típica de realizar esse tipo de coisa com o SimpleXML?

questionAnswers(2)

yourAnswerToTheQuestion