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] Création et insertion d'un élément


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut [DOM] Création et insertion d'un élément
    Bonjour à tous,

    J'essaye depuis hier d'ajouter dans mon fichier XML un nouveau noeud, mais je suis dans l'impasse.
    Mon fichier xml se structure de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <dic>
    <word>
    <fr>mot</fr>
    <en>word</en>
    </word>
    </dic>
    Lorsque j'ajoute un noeud avec ce code ci :
    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
     
    //création d'un noeud
    $root = $this->domxml->createElement('word');
    $root = $this->domxml->appendChild($root);
    //créer une fonction qui recherche tous les id 
    $root->setAttribute("id", 36);
     
    $fr = $this->domxml->createElement('fr');
    $fr = $root->appendChild($fr);
     
    $text = $this->domxml->createTextNode($insert);
    $text = $fr->appendChild($text);
     
    //Sauvegarde dans le fichier
    $this->domxml->save($this->filexml);
    cela me créé mon nouveau noeud mais à la fin de mon fichier xml.
    Moi je souhaiterais qu'il se trouve dans la balise <dic>
    Comment dois-je m'y prendre ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est ce que vous demandez lors de cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $root = $this->domxml->appendChild($root);
    Me trompe-je ?

    Dans votre code l'élément dic n'apparaît pas ? Est-ce la racine ? Si oui ce devrait alors être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $root = $this->domxml->documentElement->appendChild($root);

  3. #3
    Membre éclairé Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Par défaut
    Merci,

    Finalement j'ai trouvé hier à 17h15, désolé de ne pas avoir posté plutôt ma réponse :
    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
     
                    //Recup element racine :
    		$dico = $this->domxml->getElementsByTagName("dictionary")->item(0);
    		//création d'un noeud
    		$root = $this->domxml->createElement('word');
    		$root = $dico->appendChild($root);
    		$root->setAttribute("id", 33);
     
    		$fr = $this->domxml->createElement('fr');
    		$fr = $root->appendChild($fr);
     
    		$text = $this->domxml->createTextNode($insert);//ou $insert est le mot à ajouter
    		$text = $fr->appendChild($text);
     
    		//Sauvegarde dans le fichier
    		$this->domxml->save($this->filexml);
    C'est la première ligne qu'il me manquait, pour effectivement recupérer l'élément racine de mon document xml.

    Merci à toi JULP.
    J'espère que ca pourra en aider d'autres...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dico = $this->domxml->getElementsByTagName("dictionary")->item(0);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dico = $this->domxml->documentElement;


    Et puis ça a le mérite d'être toujours valable ...

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

Discussions similaires

  1. [DOM] Création d'éléments DOM - Pb IE6
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 22/07/2008, 15h13
  2. [DOM] problème d'insertion d'un élément?
    Par titoc dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/06/2008, 12h25
  3. [DOM]Récupére la valeur d'un élément HTML
    Par kobe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/06/2006, 20h18
  4. [DOM] Création de balise XML
    Par Shandler dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 01/06/2006, 22h49

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