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] Soucis avec removeChild


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 190
    Points : 80
    Points
    80
    Par défaut [DOM] Soucis avec removeChild
    Bonjour à tous,
    je ne comprends pas pourquoi le removeChild ne passe pas,
    quelqu'un pourrais m'indiquer la raison?
    merci d'avance.
    xml:
    Code XML : 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
    <albums>
      <parametre longueur="30" largeur="40" />
     <album nom="vacance">
            <images>
                    <image src="01.jpg"></images>
                    <image src="02.jpg"></images>
            <images>
    </album>
    <album nom="foot">
            <images>
                    <image src="03.jpg"></images>
                    <image src="04.jpg"></images>
            <images>
    </album>
     <album nom="tennis">
            <images>
                    <image src="05.jpg"></images>
                    <image src="06.jpg"></images>
            <images>
     </album>
     </albums>
    php:
    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
    25
    26
    27
     
    <?php
            if(!empty($_POST['affichnom']))
            {
                    $nom_sport = $_POST['affichnom'];
                    header('Content-Type: text/html; charset=ISO-8859-1');
                    $doc = new DOMDocument('1.0','ISO-8859-1');
                    $doc->load('sport.xml');       
                    $parent = $doc->getElementsByTagName('album');
     
                    foreach($parent as $a)
                    {
                      if($a->getAttribute('nom') == $nom_sport)
                      {
                            $enfant = $doc->getElementsByTagName('image');
                            foreach($enfant as $e)
                            {
                                  $parent->removeChild($e);
                                  $doc->save('sport.xml');
     
                            }       
     
                      }
                    }
     
              }
            ?>

  2. #2
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    Vous cherchez à supprimer quelle partie ? Les noeuds image ayant pour ancêtre un noeud album où l'attribut nom a pour valeur $_POST['affichnom'] ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $enfant = $doc->getElementsByTagName('image');
    Vous allez sans doute supprimer tous les noeuds image du document ($doc).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $parent->removeChild($e);
    Pourriez-vous essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $e->parentNode->removeChild($e);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $doc->save('sport.xml');
    Faites-le une seule fois tout à la fin : inutile de le faire à chaque itération.

    Voir éventuellement la solution de la FAQ utilisant XPath : Comment supprimer les noeuds correspondant à une expression XPath en PHP5 ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 190
    Points : 80
    Points
    80
    Par défaut
    merci encore un fois pour votre aide Julp,
    ça fonctionne,
    mais ça me supprime juste une balise <image>
    j'aurai souhaité que ça supprime toute la balise <album> avec les <image> dedans

    edit : oki j'ai retirer une boucle et tout fonctionne
    merci pour votre experience Julp, vous êtes vraiment très fort
    bonne soirée à vous.

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

Discussions similaires

  1. [DOM] Petit soucis avec innerHTML et ie
    Par dervish dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/11/2008, 21h17
  2. [JS][DOM] problème avec removeChild()
    Par Jonathan.b dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/01/2008, 11h48
  3. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 19h13
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 17h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 13h16

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