W3C DOM
No |
Name |
Role |
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 "$no | \r\n";
echo "$name | \r\n";
echo "$role | \r\n";
echo "
\r\n";
}
echo "
\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";
?>