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

我想添加其他孩子在孩子?但我想,没有什么我不知道如何...:的帮助请我想我的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?请添加更多详细信息。 – 2012-03-14 17:07:25

+0

请发布您正在尝试的代码并指定卡在哪个部分。很明显,你试图在你的问题上达到什么目的,但不是你遇到问题的地方,所以更好地分享一点。 – hakre 2012-03-14 17:09:55

+0

以及XML已经创建,但我处理它与PHP – 2012-03-14 17:10:00

回答

5

一套良好的XML的操作实例随着DOMDocument这是因为这很容易:

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

$parentDOMElement父这(你更新你的问题后)将收购是你的问题的一部分:

// 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 2012-03-14 17:20:47

+0

Excelent dude ty with getELementByTagName() - > item:D – 2012-03-14 17:24:55

+0

附加提示:不是'fopen' ...你可以使用['DOMDocument :: save()'](http://php.net/manual/en/domdocument.save.php) - 这就是'DOMDocument :: load()'的对应部分在顶部使用。 – hakre 2012-03-14 17:27:24

0

有关添加XML节点的一些很好的例子可以在PHP中找到手册。像这样one关于如何使用SimpleXMLElement类来添加一个子节点。