2012-02-29 3 views
2

У меня есть два объекта SimpleXML. Как добавить один объект в качестве дочернего элемента другого объекта.Добавить узел SimpleXML в SimpleXML

Обратите внимание, что это не может быть выполнено с помощью метода addChild, поскольку он будет преобразовывать заданное значение в строку перед добавлением.

ответ

3

Я обнаружил, что SimpleXML и DOM могут использоваться параллельно по тем же данным. Мне пришлось прочитать много справочных страниц. В конце концов я нашел это решение:

$dom_doc = dom_import_simplexml($node1)->ownerDocument; 
$dom_node2 = dom_import_simplexml(new SimpleXMLElement($node_str)); 
$node2 = $dom_doc->importNode($dom_node2, TRUE); 
$node_parent = $dom_doc->getElementsByTagName('Name-of-adding-point'); 
$node_parent->item(0)->appendChild($node2); 

Что интересно, что SimpleXML и DOM может использоваться параллельно на одних и тех же данных. Нет необходимости постоянно переводить вперед и назад. Прочтите http://au.php.net/manual/en/function.dom-import-simplexml.php#89402 для получения дополнительной информации об этом.