IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM] modification d'un XML ? [Fait]


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut [DOM] modification d'un XML ?
    Salut à tous,

    mon script me renvoit l'erreur suivante (ligne rouge du script) :

    Fatal error: Call to a member function insertData() on a non-object in /mnt/107/sdc/7/2/.../inscrip.php on line 57
    PHP5 est bien activé sur mon compte FREE, grâce à l'astuce du fichier .htaccess.

    inscrip.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    			$doc = new DOMDocument();
    			
    			$source = "id_".$_SESSION['num'].".xml";
    			
    			$doc->load($source);
    			
    			$roots = $doc->getElementsByTagName("root");
    			
    			foreach($roots as $root){
    				$ids_auto = $doc->getElementsByTagName("num_auto");
    				$id_auto = $ids_auto->item(0)->firstChild;
    				$id_auto->insertData(0, "id_".$_SESSION['num']);
    				
    				$noms = $doc->getElementsByTagName("nom");
    				$nom = $noms->item(0)->firstChild;
    				$nom->insertData(0, "id_".$_SESSION['nom']);
    	
    				$prenoms = $doc->getElementsByTagName("prenom");
    				$prenom = $prenoms->item(0)->firstChild;
    				$prenom->insertData(0, "id_".$_SESSION['prenom']);
    			}
    						
    			$doc->saveXML();
    Une idée, même une petite ... je dois rendre ça pour la fin de semaine !!!

    Gôm

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Sinon, j'ai essayé plus simplement comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    			$doc = new DOMDocument();
     
    			$doc->load("id_".$_SESSION['num'].".xml");
     
    			$ids_auto = $doc->getElementsByTagName("num_auto");
    			$id_auto = $ids_auto->item(0)->firstChild;
    			$id_auto->insertData(0, "id_".$_SESSION['num']);
     
    			$noms = $doc->getElementsByTagName("nom");
    			$nom = $noms->item(0)->firstChild;
    			$nom->insertData(0, "id_".$_SESSION['nom']);
     
    			$prenoms = $doc->getElementsByTagName("prenom");
    			$prenom = $prenoms->item(0)->firstChild;
    			$prenom->insertData(0, "id_".$_SESSION['prenom']);
     
    			$doc->saveXML();
    ...

  3. #3
    Membre chevronné
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Salut !

    J'ai cherché dans la doc php mais je n'ai pas trouvé quelles sont les propriétés d'un objet DOMNode (ce que doit être $id_auto).

    Par contre, peut-être quelque chose tout bête, essaye de tester si $id_auto != NULL avant de faire insertData pour voir si l'objet est bien instancié.
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par dbprog
    Salut !

    J'ai cherché dans la doc php mais je n'ai pas trouvé quelles sont les propriétés d'un objet DOMNode (ce que doit être $id_auto).

    Par contre, peut-être quelque chose tout bête, essaye de tester si $id_auto != NULL avant de faire insertData pour voir si l'objet est bien instancié.

    je viens de faire :
    il me renvoit rien !

    Donc $id_auto n'est pas instancié ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Comme tu peux le voir, mon élément "num_auto" n'a pas de fils !

    C'est un peu idiot de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_auto = $ids_auto->item(0)->firstChild;
    mais apparemment, il faut toujours faire comme ça, même pour traiter un élément qui n'a pas de fils, ce qui est mon cas !

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Pourquoi, lui ça fonctionne et pas moi !

  7. #7
    Membre chevronné
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Là je t'avoue que je ne sais pas trop, mais essaye de faire une analyse remontante pour savori à partir d'où il y a un problème.

    Teste si $noms->item(0) n'est pas null. En suite si $noms n'est pas null etc... Tu trouveras à partir d'où tu as une référence nulle et donc tu pourras cerner le problème.
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM] Pb création nodes XML dynamiques
    Par zzman dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/04/2006, 08h23
  2. DOM - naviguer dans un XML en javascript
    Par hpfx dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 08/11/2005, 22h43
  3. [DOM] Génération dynamique fichier xml
    Par Fabouney dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/10/2005, 09h45
  4. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 11h04
  5. Stratégie DOM ou SAX pour xml ?
    Par blackhorus dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 28/03/2005, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo