Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2007, 00h49   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 27
Points : 3
Points : 3
Par défaut [SimpleXML] Suppression d'un élément

Bonjour.
J'ai un fichier XML qui fait un vidéo playlist.
Il ressemble à ça
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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 :
1
2
3
4
5
6
7
8
9
10
			$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_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 14h22   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous essayé de supprimer quel élément ? La track ?
Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->formatOutput = TRUE;
$dom->load('playlist.xml');
foreach ($dom->getElementsByTagName('track') as $track) {
    $location = $track->getElementsByTagName('location')->item(0);
    if ($location->nodeValue == $_POST['movies']) {
        $track->parentNode->removeChild($track);
    }
}
 
// Pour test
header('Content-type: text/plain');
echo $dom->saveXML();
?>
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 22h09   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 27
Points : 3
Points : 3
[QUOTE=julp]Vous essayé de supprimer quel élément ? La track ?
oui le track avec ses enfants
lamachine_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2007, 22h30   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 27
Points : 3
Points : 3
$track->parentNode->removeChild($track); n'efface rien..........
lamachine_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h38.


 
 
 
 
Partenaires

Hébergement Web