Мой вопрос довольно прост для всех, кто знаком с классами DOM * в PHP.В основном у меня есть разные классы, которые я хочу вернуть мне что-то, что я могу добавить в мой XML-документ
Следующий псевдокод должен продемонстрировать лучше
Class ChildObject{ function exportToXML( return a DOMNode ? ) }
Class ContainerObject{
function exportToXML(){
$domSomething = new DOM*SOMETHING*;
foreach($children as $child) $domSomething->appendChild($child->exportToXML);
return $domSomething ;
}
}
Now i want to create the entire DOMDocument
$xml = new DOMDocument();
$root = $xml->createElement('root');
foreach($containers as $container) $root->appendChild($container->exportToXML());
Я попытался отправить объект DOMDocument какссылка, не работает.Я пытался создать DOMNodes, но не сработал так хорошо ... поэтому я смотрю на простой ответ: какие типы данных мне нужно вернуть, чтобы я смог достичь вышеуказанной функциональности?
<?php
$xml = new DOMDocument();
$h = $xml->createElement('hello');
$node1 = new DOMNode('aaa');
$node1->appendChild(new DOMText('new text content'));
//node1 is being returned by a function
$node2 = new DOMNode('bbb');
$node2->appendChild(new DOMText('new text content'));
//node2 is being returned by some other function
$h->appendChild($node1);//append to this element the returned node1
$h->appendChild($node2);//append to this element the returned node2
$xml->appendChild($h);//append to the document the root node
$content = $xml->saveXML();
file_put_contents('xml.xml', $content);//output to an xml file
?>
Приведенный выше код должен выполнять следующие действия:
учтите, что я хочу построить следующий xml
<hello>
<node1>aaa</node1>
<node2>bbb</node2>
</hello>
node1 снова может быть узлом с несколькими дочерними элементами, так что node1 также может бытьчто-то вроде этого:
<node1>
<child1>text</child1>
<child2>text</child2>
<child3>
<subchild1>text</subchild1>
</child3>
</node1>
Обычно, когда я вызываю exportToXML (), что-то должно быть возвращено, назовите это $ x, чтобы я мог добавить его в свой документ, используя $ xml-> appendChild ($ x);
Я хочу создать вышеуказанную структуру и вернуть объект, который можно добавить в DOMDocument