Hi,
I need to add a new xml node to a exisiting xml. The xml is like this,
I am using DOMElement to create a new xml element and the appendChild method to add this new node to the end of the xmlCode:$xmlTmpl = '<template><item><id>0</id><name>pipe</name><description>blah, blah...</description><unit>m</unit></item><item><id>1</id><name>concrete</name><description>blah...</description><unit>t</unit></item></template>';
as below.
This snippet throws an error on me at line, $tmpl -> appendChild($newItem);. The error is,Code:$doc = new DOMDocument(); $doc->loadXML($xmlTmpl); $tmpl = $doc->documentElement; $items = $tmpl->getElementsByTagName('item'); //create a new element $itemid = $items->length; $newItem = $doc->createElement('item'); $idNode = $doc->createElement('id',$itemid); $nameNode = $doc->createElement('name', $name); $dscpNode = $doc->createElement('description', $dscp); $unitNode = $doc->createElement('unit', $unit); $newItem->appendChild($idNode); $newItem->appendChild($nameNode); $newItem->appendChild($dscpNode); $newItem->appendChild($unitNode); //add the new element as a child of the xml root $tmpl -> appendChild($newItem); $xmlTmpl = $doc->saveXML();
Only one top level element is allowed in an XML document. Error processing resource 'http://localhost/contest/getTemplate.php'. Line 6, Position 2
Can anyone shed some lights? Many thanks.



Reply With Quote

Bookmarks