PHP Array function getXML($xmlFile) { $xmlArr = array(); $c = 1; $xml = new DomDocument('1.0', 'UTF-8'); $xml->load($xmlFile); $root = $xml->documentElement; $children = $root->childNodes; foreach ($children as $element) { if ($element->nodeType == XML_ELEMENT_NODE && $element->nodeName == 'model') { $xmlArr[$c]['name'] = $element->getAttributeNode('name')->value; $xmlArr[$c]['age'] = $element->getAttributeNode('age')->value; $xmlArr[$c]['readonly'] = $element->getAttributeNode('readonly')->value; $c++; } } return $xmlArr; } # Add Entry function addEntry($add, $xmlArr, $xmlFile) { $p = sizeof($xmlArr) + 1; $xmlArr[$p]['name'] = $add['name']; $xmlArr[$p]['age'] = $add['age']; $xmlArr[$p]['readonly'] = $add['readonly']; if ($this->saveXML($xmlFile, $xmlArr)) { return true; } } # Edit Entry function editEntry($edit, $xmlArr, $xmlFile) { $who = $edit['who']; foreach ($xmlArr as $key => $person) { if ($xmlArr[$key]['name'] == $who && $xmlArr[$key]['readonly'] != '1') { $xmlArr[$key]['name'] = $edit['name']; $xmlArr[$key]['age'] = $edit['age']; } } if ($this->saveXML($xmlFile, $xmlArr)) { return true; } } # Remove Entry function removeEntry($remove, $xmlArr, $xmlFile) { $who = $remove['name']; foreach ($xmlArr as $key => $person) { if ($xmlArr[$key]['name'] == $who && $xmlArr[$key]['readonly'] != '1') { $xmlArr[$key] = null; } } if ($this->saveXML($xmlFile, $xmlArr)) { return true; } } # Set Entries Order function setOrder($order, $xmlArr, $xmlFile) { $tmp = array(); for ($i = 1; $i <= sizeof($xmlArr); $i++) { for ($j = 1; $j <= sizeof($xmlArr); $j++) { if ($order[$i - 1] == $xmlArr[$j]['name']) { $tmp[$i]['name'] = $xmlArr[$j]['name']; $tmp[$i]['age'] = $xmlArr[$j]['age']; $tmp[$i]['readonly'] = $xmlArr[$j]['readonly']; } } } if ($this->saveXML($xmlFile, $tmp)) { return true; } } # Save PHP Array -> XML File function saveXML($xmlFile, $xmlArr) { $xml = new DomDocument('1.0', 'UTF-8'); $xml->formatOutput = true; $root = $xml->createElement('models'); $root = $xml->appendChild($root); foreach ($xmlArr as $key => $person) { if ($xmlArr[$key]['name'] != null) { $model = $xml->createElement('model'); $model = $root->appendChild($model); $name = $xml->createAttribute('name'); $name = $model->setAttribute('name', $xmlArr[$key]['name']); $name = $model->appendChild($name); $age = $xml->createAttribute('age'); $age = $model->setAttribute('age', $xmlArr[$key]['age']); $age = $model->appendChild($age); $readonly = $xml->createAttribute('readonly'); $readonly = $model->setAttribute('readonly', $xmlArr[$key]['readonly']); $readonly = $model->appendChild($readonly); } } if ($xml->save($xmlFile)) { return true; } } } ?>