2012-03-14 6 views
-1
<?xml version="1.0" encoding="utf-8"?> 
<root> 
    <child> 
    <children></children> 
</child> 
</root> 

и я хочу добавить других детей в ребенка ?? но я стараюсь и ничего я не знаю, как ...: S помощь пожалуйста, я хочу, чтобы мой XML будет нравиться этотКак можно добавить ребенка в конкретный узел

<?xml version="1.0" encoding="utf-8"?> 
    <root> 
     <child> 
     <children></children> 
     <children></children> 
    </child> 
    </root> 


     $dom = new DomDocument; 
     //$dom->preserveWhiteSpace = FALSE; 
     $dom->load("myXML.xml"); 
     $root = $dom->getElementById('root'); 
     $params = $dom->getElementsByTagName('child'); 
     $cantidadCategorias = $params->length+1; 

     $newElement = $dom->createElement('child',''); 
     $dom->appendChild($newElement); 
     $f = fopen("myXML.xml",'w+'); 
     fwrite($f,$dom->saveXML()); 
     fclose($f); 
+1

Что вы используете для создания своего XML? Пожалуйста, добавьте более подробную информацию. –

+0

Пожалуйста, отправьте код, в котором вы пытались, и укажите, в какой части вы застряли. Понятно, что вы пытаетесь достичь в своем вопросе, но не там, где у вас есть проблема с этим, так что лучше поделитесь немного больше. – hakre

+0

ну XML уже создан, но я обрабатываю его с помощью php –

ответ

5

с DOMDocument это так просто, как это:

$child = new DOMElement('children'); 
$parent->appendChild($child); 

В то время как $parent является DOMElement родителем, который (после того, как вы обновили свой вопрос) для aquire является частью вашей проблемы:

// append <children> to the first <child> element 
$parent = $dom->getElementsByTagName('child')->item(0); 
$child = new DOMElement('children'); 
$parent->appendChild($child); 
+0

Смотрите эту строку: '$ parent = $ dom-> getElementsByTagName ('child') -> item (0);' – hakre

+0

Excelent dude ty с getELementByTagName() -> item: D –

+0

Дополнительный совет: вместо 'fopen' ... вы можете просто использовать '' DOMDocument :: save() '] (http://php.net/manual/en/domdocument.save.php) - это аналог' DOMDocument :: load() 'you используйте сверху. – hakre

0

Поскольку вы отметили PHP я предполагаю, что вы ищете решение в PHP сделал вам попробовать следующее:

$myxml = new SimpleXMLElement($xmlstr); 
$myxml->child[0]->addChild('children'); 

См: http://www.php.net/manual/en/simplexml.examples-basic.php для хорошего набора примеров на манипуляции XML в PHP

0

Некоторые хорошие примеры того, как добавить XML-узлов можно найти в PHP руководство. Как это one о том, как использовать класс SimpleXMLElement для добавления дочернего узла.

Смежные вопросы