Aide pour supprimer un noeud XML, PHP 5, DOM [RESOLU]

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Sylvano06, 2 Mai 2007.

  1. Sylvano06
    Sylvano06 Nouveau WRInaute
    Inscrit:
    13 Février 2006
    Messages:
    11
    J'aime reçus:
    0
    Bonjour a tous,

    Je travail actuellement sur un document XML avec PHP5 et les fonctions DOM.

    Je voudrais supprimer un noeud dans mon document xml identifié par un id, et supprimer également ses enfants.

    Voici mon document xml :

    Code:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <frenchQuality>
      <photo id="0">
        <image>img/img1.jpg</image>
        <url>https://www.google.fr</url>
      </photo>
      <photo id="1">
        <image>img/img2.jpg</image>
        <url>http://www.web-together.com</url>
      </photo>
      <photo id="2">
        <image>img/img3.jpg</image>
        <url>http://www.clubic.com</url>
      </photo>
      <photo id="3">
        <image>img/img4.jpg</image>
        <url>http://www.ideal-com.com</url>
      </photo>
      <photo id="4">
        <image>img/appli.JPG</image>
        <url>test</url>
      </photo>
      <photo id="5">
        <image>img/Coucher_de_soleil.jpg</image>
        <url>couher</url>
      </photo>
    </frenchQuality>
    
    Par exemple donc je souhaite supprimer le noeud photo 5 et donc son contenu.

    Voici mon code PHP que j'utilise :

    Code:
    <?php
    //on recupere l'identifiant du noued a supprimer
    $id = $_GET['id'];
    
    /*on load le fichier xml*/
    $data = new DOMDocument();
    $data->load('bandeau.xml');
    
    /*on recherche l'element qu'on veut supprimer dont l'id est 
      passé en paramétre*/
    $deletePhoto = $data->getElementById($id);
    
    $parent = $data->getElementsByTagName('frenchQuality');
    
    /*on le delete*/
    $parent->removeChild($deletePhoto);
    
    /*on sauve le xml*/
    $data->save('bandeau.xml');
    ?>
    
    Quand j'essaye ce code, cela me donne cette erreur :

    J'espere que quelqu'un pourra m'aider.

    Bonne soirée à tous.

    Cordialement.
     
  2. honolulu
    honolulu WRInaute impliqué
    Inscrit:
    8 Novembre 2005
    Messages:
    746
    J'aime reçus:
    0
  3. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    :)
    euh ton lien c'est le dom js, je crois qu'il s'agit plutot de celui ci dans ce post ;)
     
  4. honolulu
    honolulu WRInaute impliqué
    Inscrit:
    8 Novembre 2005
    Messages:
    746
    J'aime reçus:
    0
    arf, il était l'heure d'aller me coucher pour moi :oops:
     
  5. Jeviensderio
    Jeviensderio WRInaute passionné
    Inscrit:
    29 Septembre 2006
    Messages:
    1 053
    J'aime reçus:
    0
    $parent = $data->getElementsByTagName('frenchQuality');

    Cette fonction retourne un DOMNodeList, il faudrait un DOMNode

    $nodex = $parent->item(0);

    ou $nodex = $parent[0];
     
  6. Sylvano06
    Sylvano06 Nouveau WRInaute
    Inscrit:
    13 Février 2006
    Messages:
    11
    J'aime reçus:
    0
    Merci beaucoup pour vous réponses, malheuresement je suis un peu entrain de me perdre. Si je comprend bien donc je récupére une liste de noeud.

    Je suis un peu perdu :(

    En faite, je voudrais récuperer le noeud photo qui correspond a l'identifiant passé par la méthode GET et ensuite supprimer ce noeud ainsi que ses enfants.

    Je suis un perdu mais ca doit être le mauvais réveil. En tout cas merci pour toutes vos réponses.
     
  7. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    voici un code qui marche, il semblerait qu'il faille tout ou presque faire à la main (recherche des noeud, parcours et test des attributs), à confirmer

    Code:
    <?php
    //on recupere l'identifiant du noued a supprimer
    $id = $_GET['id'];
    
    /*on load le fichier xml*/
    $data = new DOMDocument();
    
    $data->load('bandeau.xml');
    
    $parent = $data->getElementsByTagName('photo');
    
    for( $i=0; $i<$parent->length; $i++ ) {
    
    	$attr = $parent->item($i)->attributes;
    	for( $j=0; $j<$attr->length; $j++ ) {
    		if( $attr->item($j)->nodeName == 'id' && $attr->item($j)->nodeValue == $_GET['id'] )
    			$element = $parent->item($i);
    	}
    
    }
    
    $racine = $data->documentElement;
    
    $suppr = $racine->removeChild($element);
    
    ?> 
     
  8. Sylvano06
    Sylvano06 Nouveau WRInaute
    Inscrit:
    13 Février 2006
    Messages:
    11
    J'aime reçus:
    0
    Merci beaucoup pour ce bout de code, ça marche niquel :)
     
Chargement...
Similar Threads - Aide supprimer noeud Forum Date
A L'aide : comment supprimer ses coordonnées d'un site ? Droit du web (juridique, fiscalité...) 20 Mars 2015
Besoin d'aide,3 pages illégales impossible à supprimer,aucun hébergeur ne répond ! Droit du web (juridique, fiscalité...) 11 Octobre 2014
A L'AIDE : supprimer une suggestion google suggest Google : l'entreprise, les sites web, les services 11 Mai 2012
1&1 mutualisé : aide optimisation + supprimer affichage erreur php URL Rewriting et .htaccess 15 Juin 2010
aide - comment supprimer ces fenêtres intempestives? Développement d'un site Web ou d'une appli mobile 12 Décembre 2009
Aide requete sql Développement d'un site Web ou d'une appli mobile 28 Novembre 2022
Aide mémoire de fin d’étude Le café de WebRankInfo 12 Août 2022
Une aide pour une fonction récursive... Développement d'un site Web ou d'une appli mobile 18 Juillet 2022
Aide petite regex Développement d'un site Web ou d'une appli mobile 28 Juin 2022
Aide données structurées produits Woocommerce Débuter en référencement 4 Mai 2022
WordPress A l'aide ! Mon site est spammé, mon domain rating prend un sacré coup Débuter en référencement 26 Avril 2022
WordPress Concours SEO : aide pour référencer site sur Boinmadig Demandes d'avis et de conseils sur vos sites 31 Mars 2022
Pose de liens : Besoin d'aide d'ordre technique et besoin d'éclairage Netlinking, backlinks, liens et redirections 9 Mars 2022
De l'aide pour ma localisation dans les balises SEO Demandes d'avis et de conseils sur vos sites 23 Février 2022
Comparateur de prix de bien commun - Aide / partenariat Demandes d'avis et de conseils sur vos sites 23 Décembre 2021
Avis et aide sur quel-canape Demandes d'avis et de conseils sur vos sites 13 Décembre 2021
Besoin d'aide pour le lancement de mon Application Demandes d'avis et de conseils sur vos sites 12 Août 2021
Besoin d'aide pour la compréhension d'une application Développement d'un site Web ou d'une appli mobile 1 Août 2021
J’ai disparu de la SERP… A l’aide Débuter en référencement 25 Juillet 2021
M'aider à comprendre... Demandes d'avis et de conseils sur vos sites 16 Juin 2021