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

XML/XSL et SOAP Discussion :

modification du contenu de noeud xml


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Par défaut modification du contenu de noeud xml
    j'ai besoin de savoir comment on peut modifier le contenu d'un noeud dans l'XML
    exemple:
    <?xml version="1.0" encoding="UTF-8"?>
    <balise><nom>test</nom></balise>

    devient :
    <?xml version="1.0" encoding="UTF-8"?>
    <balise><nom>newContent</nom></balise>

    merci d'avance

  2. #2
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Par défaut
    y-t-il quelqu'un pour me répondre?
    je suis débutante en xml.
    moi je cherche le script qui fait la modification de contenu d'un neoud car j'ai ajouté ce code mais ça marche pas :
    $dom = new DomDocument;
    $dom->load("photo.xml");
    $names = $dom->getElementsByTagName("nom");
    $name = $names[0];
    $name_text_node = $name->first_child();
    $name_text_node->set_content("newContent");
    $xmlTmpl = $dom->save("photo.xml");
    avez vous une idée??
    merci

  3. #3
    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
    Il y a mélange des extensions DOM (PHP 5) et DOMXML (PHP 4), donc ça ne peut fonctionner.

    Le code adapté en DOM pur serait plutôt :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $dom = new DomDocument;
    $dom->load("photo.xml");
    $names = $dom->getElementsByTagName("nom");
    $name = $names->item(0);
    # Si on cherche à modifier la valeur du premier élément fils de nom :
    $name_text_node = $name->firstChild;
    $name_text_node->nodeValue = "newContent";
    # Si on cherche à modifier la valeur de l'élément nom :
    # $name->nodeValue = "newContent";
    $xmlTmpl = $dom->save("photo.xml");
    (non testé)

  4. #4
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Par défaut
    j'ai testé le code il m'a affiché ce message d'erreur.
    Avez vous une idée?
    Fatal error: Call to undefined method DOMElement::firstChild() in C:\Documents and Settings\Administrateur\Bureau\upload_ajax\XML_UploadFile\modif.php on line 7
    en ligne 7 : il y a le code suivant :
    $name_text_node = $name->firstChild();
    merci pour vos réponses.

  5. #5
    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
    Corrigé : firstChild n'est pas une méthode mais une propriété.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Par défaut
    Merci pour vous aides.
    mon fichier XML est le suivant :
    <photos>
    <photo id="0">
    <id>0</id>
    <nom>newContent</nom>
    <dateCreation>09-09-5</dateCreation>
    <legende>aa</legende>
    <url>images/collines.jpg</url>
    </photo>
    <photo id="1">
    <id>1</id>
    <nom>Coucher de soleil</nom>
    <dateCreation>09-09-5</dateCreation>
    <legende>bb</legende>
    <url>images/coucher-de-soleil.jpg</url>
    </photo>
    <photo id="2">
    <id>2</id>
    <nom>Hiver</nom>
    <dateCreation>09-09-5</dateCreation>
    <legende>cc</legende>
    <url>images/hiver.jpg</url>
    </photo>
    </photos>
    et je veux changer parfois nom, dateCreation, legende et url.
    je tappe le code pour les quatres variables??
    merci d'avance

  7. #7
    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
    Ça dépend de votre conception de la chose et de vos besoins. Le nom de l'élément à modifier pouvant parfaitement être désigné par une variable (au niveau de getElementsByTagName pour reprendre votre code).

  8. #8
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Par défaut
    Donc le code devient comme le suivant :
    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
     
    $champ= $_GET['champ'];   
    $valeur= $_GET['valeur'];
    $dom = new DomDocument;
    $dom->load("photo.xml");
    //$champ c'est soit la balise nom, dateCreation, legende ou url
    $names = $dom->getElementsByTagName($champ);
    $name = $names->item(0);
    # Si on cherche à modifier la valeur du premier élément fils de nom :
    $name_text_node = $name->firstChild;
    //$valeur c'est la valeur qui va prendre le champ
    $name_text_node->nodeValue = $valeur;
    # Si on cherche à modifier la valeur de l'élément nom :
    # $name->nodeValue = "newContent";
    $xmlTmpl = $dom->save("photo.xml");
    c'est bon comme ça le code??
    Sincèrement merci beaucoup.

  9. #9
    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
    A priori, oui.

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

Discussions similaires

  1. Modifier le contenu d'un noeud XML avec XQuery
    Par Gm7468 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/07/2012, 08h44
  2. Liste énuméré pour le texte contenu dans un noeud XML ?
    Par lightstring4 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/05/2011, 23h50
  3. d7-Lire le contenue d'un noeud xml
    Par mario9 dans le forum APIs
    Réponses: 1
    Dernier message: 12/03/2010, 22h21
  4. Modification du contenue des fichier XML
    Par robinson50 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 02/06/2009, 22h29
  5. [C#] [1.1] Modification d'attributs d'un noeud XML
    Par Sup@Lou dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/08/2006, 16h35

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