Метод "addChild" в SimpleXMLElement выглядит так, как будто он должен быть правильным выбором, но, очевидно, он принимает только строки, представляющие тэг нового дочернего элемента.
Существует нотация Object-Ish для ссылки на узлы дерева и их установки, например, $ simpleXMLNode-> child = value, но это работает только для простых текстовых / числовых значений. Если я попробую следующее:
$s = new SimpleXMLElement('<root/>');
$t = new SimpleXMLElement('<child/>');
$s->a = $t;
echo $s->asXML()
Я получаю:
<?xml version="1.0"?>
<root><a></a></root>
когда я надеялся на:
<?xml version="1.0"?>
<root><a><child/></a></root>
Я думал о преобразовании $ t в строку и последующем ее добавлении (после удаления объявления XML):
$s->a = substr($t->asXML(),22)
Но это дает:
<?xml version="1.0"?>
<root><a><child/></a></root>
Опять не то, на что я надеялся.
Есть ли типичный способ для выполнения такого рода вещей с SimpleXML?