W3C DOM

load(XML_FILE); // iterate over all employee elements $employees = $doc->getElementsByTagName('employee'); foreach($employees as $employee) { // find attribute no $no = $employee->attributes->getNamedItem('no')->nodeValue; // find sub elements name and role $name = ''; $role = ''; foreach($employee->childNodes as $child) { if($child->nodeType == XML_ELEMENT_NODE) { if($child->nodeName == 'name') { $name = $child->firstChild->nodeValue; } if($child->nodeName == 'role') { $role = $child->firstChild->nodeValue; } } } // print echo "\r\n"; echo "\r\n"; echo "\r\n"; echo "\r\n"; echo "\r\n"; } echo "
No Name Role
$no$name$role
\r\n"; // add employee $newname = $doc->createElement('name'); $newname->appendChild($doc->createTextNode('Dave D')); $role = $doc->createElement('role'); $role->appendChild($doc->createTextNode('Intern')); $newemployee = $doc->createElement('employee'); $newemployee->setAttribute('no', '4'); $newemployee->appendChild($newname); $newemployee->appendChild($role); $doc->documentElement->appendChild($newemployee); // write out echo "
\r\n";
echo str_replace(array('<','>'),array('<','>'),$doc->saveXML());
echo "
\r\n";
?>