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] Ajout de nœud


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut [DOM] Ajout de nœud
    Hi,

    j'ai un fichier XML de cette forme :

    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
    <projets>
    <struct>
    	<id>1</id>
    	<nom>...</nom>	
    	<description>...</description>
    	<pageWeb>www</pageWeb>
    </struct>
    <struct>
    	<id>2</id>
    	<nom>...</nom>	
    	<description>.../description>
    	<pageWeb>www</pageWeb>
    </struct>
    <struct>
    	<id>3</id>
    	<nom>...</nom>	
    	<description>...</description>
    	<pageWeb>www</pageWeb>
    </struct>
     
    </projets>

    et j'ai un code pour ajouter un noeud , le voila :

    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
    24
    $dom = new DomDocument();	
    	$dom->preserveWhiteSpace = FALSE;
    	$dom->formatOutput = TRUE;
    	$dom->load('projets.xml');
    	
    	$nouveauproj = $dom->createElement("struct");
    	$projet= $dom->getElementByTagName("projets")->item(0);//la ligne qui crée l'erreur
    	$projet->appendChild($nouveauproj);
    	$id = $dom->createElement("id");
    	$nom = $dom->createElement("nom");
    	$desc = $dom->createElement("description");
    	$pW = $dom->createElement("pageWeb");
    	$id->setAttribute($_POST['id']);
    	$nom->setAttribute($_POST['nom']);
    	$desc->setAttribute($_POST['description']);
    	$id->setAttribute($_POST['pageWeb']);
    	
    	$nouveauproj->appendChild($id);
    	$nouveauproj->appendChild($nom);
    	$nouveauproj->appendChild($desc);
    	$nouveauproj->appendChild($pW);
    	 
    	// Sauvegarde
    	$dom->save('projets.xml');

    la ligne en rouge me crée cette erreur :
    Fatal error: Call to undefined method DOMDocument::getElementByTagName() in C:\Documents and Settings\mo\Mes documents\html\ajproj.php on line 27


    et rien n'est ajouté dans le fichier xml ... avez vous une idée sur l'erreur ?


    merci



    ...

  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
    Oh oui, le nom de la méthode est faux : DOMDocument->getElementsByTagName()

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut



    et encore un pour le resultat que j'ai obtenu , voici le noeud qui a été ajouté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <struct>
        <id id="4" pageWeb="www"/>
        <nom nom="projet"/>
        <description description="ce projet n'existe pas!"/>
        <pageWeb/>
      </struct>
    pourquoi le code que j'ai montré dans le message precedant (cette fois je n'ai pas oublié le s ) ne donne pas ce que je veux

    ce que je voulais c'est ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <struct>
        <id>4</id>
        <nom>projet</nom>
        <description>Ce projet n'existe pas</description>
        <pageWeb>www</pageWeb>
      </struct>





    ...

  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
    Si vous créez des attributs au lieu de noeuds textuels, ça me paraît normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$id = $dom->createElement("id");
    	$nom = $dom->createElement("nom");
    	$desc = $dom->createElement("description");
    	$pW = $dom->createElement("pageWeb");
    	$id->setAttribute($_POST['id']);
    	$nom->setAttribute($_POST['nom']);
    	$desc->setAttribute($_POST['description']);
    	$id->setAttribute($_POST['pageWeb']);
    Devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$id = $dom->createElement('id', $_POST['id']);
    	$nom = $dom->createElement('nom', $_POST['nom']);
    	$desc = $dom->createElement('description', $_POST['description']);
    	$pW = $dom->createElement('pageWeb', $_POST['pageWeb']);

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut
    et un pour finir

    c'est reglé merci


    ...

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

Discussions similaires

  1. [DOM] ajouter cellspacing dynamiquement
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/04/2006, 11h30
  2. [DOM] Ajout de noeuds
    Par zevince dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/03/2006, 13h39
  3. [DOM] ajouter un événement à un objet du dom
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/03/2006, 11h55
  4. [Manipulation DOM] Ajouter un DIV "autour" d'un A
    Par psychomatt dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/02/2006, 15h18
  5. [DOM] Ajouter un bouton avec un nouveau style
    Par Mehdi Feki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/12/2005, 08h56

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