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

Langage PHP Discussion :

Remonter l'arborescence d'un noeud xml [PHP 5.2]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut Remonter l'arborescence d'un noeud xml
    Bonjour,

    Je cherche à supprimer une branche de mon xml, sur la condition qu'elle contient un nœud avec un certain attribut.

    Je trouve donc mes nœuds concernés avec une requête xpath, tout en ayant déjà chargé mon xml avec DOMDocument.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nodeList = $xpath->query( "//product[@code='HOP']/features/info/status[@code='0003']" );
    Maintenant, j'aimerais bien supprimer les nœuds features que je trouve, c'est-à-dire ceux contenant un enfant info avec un enfant status ayant l'attribut code égal à 0003.

    Seul soucis, j'arrive bien à supprimer l'enfant status mais je n'arrive pas à remonter à son grand-parent (features) pour le supprimer.

    Voici la façon dont je supprime l'enfant status :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            $nodeList = $xpath->query( "//product[@code='HOP']/features/info/status[@code='0003']" );
            foreach( $nodeList as $element )
            {
                  $test = $element->parentNode->removeChild( $element );
           }
    Une idée ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si tu remontes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $test = $element->parentNode->parentNode->parentNode->removeChild($element->parentNode->parentNode);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut
    Testé et cela ne fonctionne pas.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Shadow aok Voir le message
    Testé et cela ne fonctionne pas.

    c'est peu etre pas bon dans le nombre de parentNode

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Par défaut
    J'ai testé avec deux parentNodes, ce qui nous mène au grand-parent que je cherche à supprimer, sans succès.
    Même avec 3 cela supprimerait tout mais fonctionnerait.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as un bout de ton fichier XML pour que je test ?

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

Discussions similaires

  1. XML remonter une arborescence en DOMDocument
    Par dacid dans le forum Langage
    Réponses: 0
    Dernier message: 12/12/2012, 17h47
  2. [Ajout noeud xml] comment ça marche?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 37
    Dernier message: 19/07/2007, 22h46
  3. Réponses: 3
    Dernier message: 01/04/2005, 09h37
  4. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29
  5. Remonter une arborescence
    Par Gwipi dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/11/2003, 18h04

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