Array/SimpleXML

Résolu
naketomy -  
 naketomy -
Bonjour,

Pourquoi est ce que ça, ça ne marche pas :
function supress_dat_from_xml($entry_nb) {
$xml = new SimpleXMLElement('database.xml',null,true);
unset($xml->entry[$entry_nb]);
if($xml->asXML('database.xml')) { return true;} else {return false;}
}

Mais que ça, ça marche :
function supress_dat_from_xml() {
$xml = new SimpleXMLElement('database.xml',null,true);
unset($xml->entry[2]);
if($xml->asXML('database.xml')) { return true;} else {return false;}
}

Grmbl...

Merci d'avance :-)
Et bonne aprem !

3 réponses

  1. Quo
     
    Vérifie qu'au moment ou tu appel ta fonction la valeur que tu lui fournis est valide/dans le bon format
    0
  2. naketomy
     
    Merci de ta réponse,

    J'ai fais un echo sur $entry_nb.
    Au vu de l'appel de la fonction, ça me donne bien le résultat "2". Qui est celui attendu, et ce sans autre caractère quelconque.

    Je n'arrive vraiment pas à comprendre où est le couac.

    Merci encore,
    Bonne soirée,

    Edit : Je viens aussi de tenter un is_numeric, qui me répond true.
    0
  3. naketomy
     
    Résolu, par persévérance.
    J'ai ajouté l'attribut 'id' a mes <entry>.
    Je le génère automatiquement à la création du xml.
    Ainsi, je peux.. de manière lourde et fastidieuse (^^) parvenir à mes fins.

    function supress_dat_from_xml($entry_nb) {
    $xml = new SimpleXMLElement('database.xml',null,true);
    $i = 0;
    foreach($xml->entry as $content) {
    if($content['id'] == $entry_nb){
    unset($xml->entry[$i]);
    break;
    }
    $i++;
    }
    if($xml->asXML('database.xml')) { return true;} else {return false;}
    }
    0