Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels 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 04/04/2007, 00h19   #1
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 3
Points : 1
Points : 1
Par défaut [DOM] pb gestion xml en php5

Bonjour,

Après avoir suivi le cours "Gestion du XML en PHP 5 : utiliser DOM" de Guillaume Piolle sur le sujet, je reste bloqué sur un problème:

Réussir à détruire un noeud de mon fichier XML

Ne trouvant pas mon erreur, je vous fais part de mes codes:

fichier test.xml
Code XML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE continents SYSTEM "test.dtd">
<continents>
  <europe>
    <pays regime="republique">France</pays>
    <pays regime="monarchie constitutionnelle">Belgique</pays>
    <pays regime="monarchie constitutionnelle">Espagne</pays>
    <pays regime="monarchie constitutionnelle">Royaume-Uni</pays>
    <pays regime="libertee">zion</pays>
 </europe>
 <asie>
    <pays regime="empire">Japon</pays>
    <pays>Inde</pays>
  </asie>
</continents>

et voici mon fichier php qui devrait gérer l'effacement d'un noeud:

test.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$dom = new DomDocument();
 
$dom->load("test.xml");
 
$nouveauPays = $dom->createElement("pays");
$nomPays = $dom->createTextNode("zion");
$nouveauPays->setAttribute("regime", "libertee");
$nouveauPays->appendChild($nomPays);
$europe = $dom->getElementsByTagName("europe")->item(0);
$europe->removeChild($nouveauPays);
 
$dom->save("test.xml");
?>

Je vous remercie de votre aide,

Cordialement
arty29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 09h24   #2
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Tu as oublié d'"appender" $nouveaupays.
A partir de là, logique qu'il n'arrive pas à le supprimer ^^
Un moyen simple de supprimer un noeud, sinon:
$nouveauPays->parent->removeChild($nouveauPays)
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 19h29   #3
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 3
Points : 1
Points : 1
Bonjour, merci pour la réponse,

En fait si j' "append" le $nouveauPays et que je le remove aussitôt, la suppression se fait.Mais je désirerais supprimer un noeud qui se trouve déjà dans le xml. (si on est sur le noeud "france" ou "zion" ou ..., => on supprime)

Avec le code,
Code :
$nouveauPays->parent->removeChild($nouveauPays)
je n'arrive en fait pas à désigner $nouveauPays comme étant tel ou tel noeud...

Merci de votre aide
arty29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 18h53   #4
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 3
Points : 1
Points : 1
Par défaut Résolu

Je viens de réussir!

Ouf, ca m'a pris du temps, mais mon script est maintenant opé!
arty29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h15.


 
 
 
 
Partenaires

Hébergement Web