begin process at 2010 09 06 06:12:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Probleme modifier xml !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme modifier xml !

jeudi 20 juillet 2006 à 11:33:00 | Probleme modifier xml !

chanandler

Bonjour,

Jai créé un script pour modifier un fichier xml a un certain endroit mais ca marche pas et je voie pas où est l'erreur pourriez vous m'aider merci

Fichier XML :

<galerie>

<photo>
<nom>grenou.jpg</nom>
<description>
<date>26/02/2006</date>
<evenement>bapteme</evenement>
<protagoniste>
<personnage>Mamie</personnage>
</protagoniste>
</description>
</photo>

</galerie>

Script PHP :

    function modifxml($nomphoto,$date,$evenement,$personnage,$fichier_xml)
    {   
      $modif = new DomDocument;
      //Permet de créer les différents noeud pour les nouvelles photo.
    $newphoto = $modif->createElement('photo');
    $newnom = $modif->createElement('nom',$nomphoto);
    $newdescription = $modif->createElement('description');
    $newdate = $modif->createElement('date',$date);
    $newevenement = $modif->createElement('evenement',$evenement);
    $newprotagoniste = $modif->createElement('protagoniste');
        //Boucle permettant l'ajout de plusieurs personnage.
        foreach($personnage as $element)
        {
          $newpersonnage = $modif->createElement('personnage',$element);
        $newprotagoniste->appendChild($newpersonnage);
        }       
       
        //Permet d'ajouter les nouveau fils à la fin des fils.   
        //$galerie->appendChild($newphoto);
        $newphoto->appendChild($newnom);
        $newphoto->appendChild($newdescription);
        $newdescription->appendChild($newdate);
        $newdescription->appendChild($newevenement);
        $newdescription->appendChild($newprotagoniste);

       //creation obj DOM
       $doc = new DOMDocument;
       //charge fichier xml d'origine
       $doc->load($fichier_xml);
       //creation obj DOM xpath
       $doc_xpath = new DOMXPath($doc);
       //recherche par xpath du noeud a supprimer (normalement une seule reponse)
       $entries=$doc_xpath->query('photo[nom="'.$nomphoto.'"]');
       //on selectionne la reponse
       $oldnode=$entries->item(0);

      // Load the $parent document fragment into the current document
      $newnode = $doc->importNode($modif->documentElement, true);
     
      // Replace
      $oldnode->parentNode->replaceChild($newnode, $oldnode);
 
       //enregistrement du fichier
       $doc->save($fichier_xml);
    }

    $perso = array('pierre','paul','jacque','milouse');
    modifxml('grenou.jpg','12/05/2006','Vacance',$perso,'galerie_test.xml');
   
merci


jeudi 20 juillet 2006 à 13:35:39 | Re : Probleme modifier xml !

malalam

Administrateur CodeS-SourceS
Hello,

il serait bon que tu précises ce qui ne marche pas, ce qu'il se passe à la place, et la portin de code incréminée.
Parce que là...je ne vois rien d'anormal.
jeudi 20 juillet 2006 à 13:55:38 | Re : Probleme modifier xml !

chanandler

Il me mais ca comme erreur :


Warning: DOMDocument::importNode() expects parameter 1 to be DOMNode, null given in

Warning: DOMNode::replaceChild() expects parameter 1 to be DOMNode, null given in


merci a toi

jeudi 20 juillet 2006 à 15:33:40 | Re : Probleme modifier xml !

malalam

Administrateur CodeS-SourceS

Vérifie ce que te renvoie documentElement, déjà, comme noeud.

jeudi 20 juillet 2006 à 15:55:42 | Re : Probleme modifier xml !

chanandler

Si je me trompe pas il faut ca pour voir ce que renvoie documentElement si oui bas il renvoie rien et je voie pas poukoi.


        $modif = new DomDocument;
      //Permet de créer les différents noeud pour les nouvelles photo.
    $newphoto = $modif->createElement('photo');
    $newnom = $modif->createElement('nom','grenou.jpg');
    $newdescription = $modif->createElement('description');
    $newdate = $modif->createElement('date','12/05/2006');
    $newevenement = $modif->createElement('evenement','Vacance');
    $newprotagoniste = $modif->createElement('protagoniste');
        //Boucle permettant l'ajout de plusieurs personnage.
        foreach($perso as $element)
        {
          $newpersonnage = $modif->createElement('personnage',$element);
        $newprotagoniste->appendChild($newpersonnage);
        }       
       
        //Permet d'ajouter les nouveau fils à la fin des fils.   
        //$galerie->appendChild($newphoto);
        $newphoto->appendChild($newnom);
        $newphoto->appendChild($newdescription);
        $newdescription->appendChild($newdate);
        $newdescription->appendChild($newevenement);
        $newdescription->appendChild($newprotagoniste);
   
       echo $modif->documentElement;
jeudi 20 juillet 2006 à 16:27:15 | Re : Probleme modifier xml !

malalam

Administrateur CodeS-SourceS
Tu te trompes...
documentElement renvoie un élément.
On ne lit pas un élémentcomme ça.

Ceci dit, je me rends compte d'un coup :

si j'ai bien pigé, tu veux importer le document à partir du noeud racine "photo".
Bref, c'est le DOMNode photo que tu dois donner.
documentElement renvoie un type DOMElement!
importNode () attend un type DOMNode!
ce qui est très différent...



jeudi 20 juillet 2006 à 16:36:27 | Re : Probleme modifier xml !

chanandler

Si jai bien compris ce que tu me dis c'est que DOMNode->replaceChild() ne serait pas compatible avec DOMDocument->importNode(). Si c'est bien cela je comprend pas comment passé outre ce probléme car en faite ma fonction doit pouvoir modifier ce que contient les balise photos.


Si tu pouvais eclairer ma lenterne je t'en remerci car la je patoge merci a toi.

vendredi 21 juillet 2006 à 11:04:18 | Re : Probleme modifier xml !

chanandler

Bonjour,


Juste pour dire que j'ai fini par trouver mon erreur qui était enfin de compte trés bête car je faisait pas d'appenchild pour la balise photo voila tou sinon merci a toi et aussi jai encore une question si ca te derange pas.


Car voila jai une select box qui est alimenté par un foreach avec une requete xpath mais j'aimerai pouvoir classer les élément dans la select box par ordre alphabétique aurais tu une idée pour faire cela merci a toi.
vendredi 21 juillet 2006 à 11:54:31 | Re : Probleme modifier xml !

malalam

Administrateur CodeS-SourceS
Xpath peut utiliser une fonction sort (). Ca devrait faire l'affaire.
vendredi 21 juillet 2006 à 12:03:46 | Re : Probleme modifier xml !

chanandler

    Sauf que dans mon foreach j'utiliser la fonction array_unique et quand je surcharge en + avec un sort ca marche pas serais tu pourquoi merci a toi  


      //Boucle permettant de récupérer toutes les personnes.
      foreach(array_unique($xml->xpath('//photo/description/protagoniste/personnage')) as $galerie)
      {
                 echo '<option value="'.$galerie.'">'.$galerie.'</option>'."\n";
      }       


1 2

Cette discussion est classée dans : doc, xml, createelement, modif, appendchild


Répondre à ce message

Sujets en rapport avec ce message

XML d'un tableau [ par gazalii ] Bonjour,je veux faire un flux XML sous la forme suivante       test    test2    <v php dom probleme xml [ par G4uthier ] Bonjour, j'ai un probleme pour crer mon fichier XML :il me met une erreur : Warning: domdocument() expects parameter 2 to be long, string given in /e XML insérer un élément tout au dessus [ par Straw ] Bonjour à tous, je pose cette question dans le cadre de mon mémoire... que je dois rendre dans 12jours Je développe un site flash-xml. Jusque là c PHP5 + XML + DOM, il y a t il un bug ou bien je suis vraiment nul ??? [ par izanifu ] Bonjour à tous,Voila je developpe pour mon travail une classe en php5 basé sur DOM pour pouvoir faire des add/mod/del sur un fichier XML.Comment cela Utilisation de DOM XML [ par Teclis01 ] Bonjour, Voila j'ai quelques soucis pour utiliser la class DOM XML ... Il ne met pas la balise de fermeture du root du document xml et en plus sans in De doc vers XML, un algo? [ par EricLeRouge ] Bonjour, afin d'exploiter des données d'un documment word, j'aimerai le convertir en XML via php. Existe t il un algo?Je ne connais pas le XML, mais c Pb dom pr gnérer du xml [ par chanandler ] Bonjour, J'ai code php qui utilise dom qui marche presque sauf qu'il ne fais pas complétement ce que je veux, le code sera mieux qu'un long discours d DomXML, TextNode tronqué ... [ par JoJo738 ] Helo tout le monde :pJe suis depuis ce matin sur une class de log, et je rencontre un petit problème ...Je veux enregistrer la Trace de mon erreur ... Lecture à partir d'un lien hypertexte d'une page XML transformée en XSLT [ par grijalvas ] Bonjour, J'ai réalisé une page XML. Je l'ai transformée en informations lisibles par le navigateur en créant la page XSLT(sous-ensemble du langage XS xml et php [ par agbebe ] salut !!!voila, je voudrais savoir que lorsqu'on utilise un fichier xml on a plus besoin de base de données pour stocker les infos ???dans tous les ca


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales