Czy istnieje sposób na dodanie PHP SimpleXMLElement do innego SimpleXMLElement?

Metoda „addChild” SimpleXMLElement wydaje się być właściwym wyborem, ale najwyraźniej przyjmuje tylko łańcuchy reprezentujące zmienną nowego dziecka.

Istnieje notacja obiektowa do odwoływania się do węzłów drzewa i ustawiania ich, np. $ simpleXMLNode-> child = wartość, ale wydaje się, że działa tylko dla prostych wartości tekstowych / liczbowych. Jeśli spróbuję:

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

Dostaję:

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

kiedy miałem nadzieję:

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

Myślałem o przekonwertowaniu $ t na łańcuch, a następnie dodaniu go (po usunięciu deklaracji XML):

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

Ale to daje:

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

Znowu nie to, na co miałem nadzieję.

Czy istnieje typowy sposób na osiągnięcie tego rodzaju rzeczy za pomocą SimpleXML?

questionAnswers(2)

yourAnswerToTheQuestion