1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
   | <?php
define('FICHIER_XML', 'angel.xml');
 
/**
 * - $_POST['name'] : la valeur de l'attribut name de l'élément item à créer
 * - $_POST['pic'] : la valeur de l'attribut pic de l'élément item à créer
 * - $_POST['item'] : la valeur de l'attribut name d'un élément item existant afin qu'il soit utilisé comme parent du nouvel élément
 **/
 
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
    function stripslashes_array($array) {
        return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
    }
 
    $_POST = stripslashes_array($_POST);
}
 
$dom = DomDocument::load(FICHIER_XML);
$nouvItem = $dom->createElement('item');
$nouvItem->setAttribute('name', utf8_encode($_POST['name']));
$nouvItem->setAttribute('pic', utf8_encode($_POST['pic']));
$xpath = new DomXPath($dom);
$items = $xpath->query(sprintf('/principal/item[@name="%s"]', utf8_encode($_POST['item'])));
if ($items) {
    $items->item(0)->appendChild($nouvItem);
} else {
    die('Erreur XPath');
}
// $dom->save(FICHIER_XML);
echo '<pre>' . htmlspecialchars($dom->saveXML()) . '</pre>'; | 
Partager