Aide - Recherche - Membres - Calendrier
Version complète : Suppression d'un élément
Forum Développeur - Administration serveur, programmation et base de données > Programmation > XML et XSL
lamachine
Bonjour.
J'ai un fichier XML qui fait un vidéo playlist.
Il ressemble à ça
Code :

<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<title>video</title> <creator>video creatore</creator> <location>video.flv</location>
</track>
<track>
<title>video_1</title><creator>video_1</creator> <location>video_1.flv</location>
</track>
</trackList>
</playlist>

Je charge le fichier dans une liste déroulante à l'aide de simpleXML. L'élément sélectionné est en suite attrapé dans la variables « $_POST['movies'] ». Ce que je veux c'est supprimer l'élement du playlist. Alors je fais.
Code :

$dom = new domDocument();
$dom->load('playlist.xml');
foreach ($dom->getElementsByTagName("track") as $node)
{
$v = $node->getElementsByTagName("location")->item(0)->nodeValue;
if($v == $_POST['movies']) { $dom->removeChild($v); }
}

La boucle tourne la comparaison s'effectue mais je bloque sur la suppression. Merci pour votre aide
lamachine
18 lectures pas de comment ça fait vraiment peur.... icon_eek.gif icon_eek.gif
blaz
salut,

Un peu tard mais bon sait on jamais.
Le probleme est que tu essaye de supprimer la valeur d'un noeud au lieu du noeud, car si je regarde bien
$v =$node->getElementsByTagName("location")->item(0)->nodeValue;
et donc $dom->removeChild($v); ne peux pas fontionner.

par contre si tu fais:
CODE
foreach ($dom->getElementsByTagName("track") as $node){
    $v = $node->getElementsByTagName("location")->item(0);
    if($v->nodeValue == $_POST['movies']) {
        $dom->removeChild($v);
    }
}


ca devrait il me semble mieux marcher.
lamachine
Merci blaz.
T'as réflection est judicieuse. Entre le temps je me suis sorti de ma manière. Voilà le code qui marche pour moi.
for($i=0; $i<= sizeof($s->trackList->track); $i++)
{
if($s->trackList->track[$i]->location == $_POST['movies'])
{unset($s->trackList->track[$i]);}
}
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.