2012-03-14 78 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類來添加一個子節點。