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] Suppression d'un nœud


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut [DOM] Suppression d'un nœud
    C'est encore moi

    en fait j'ai besoin de connaitre une fonction de DOM qui prend en entré un id et retourne en sortie le noeud correspondant

    voici mon code

    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
    	$ids = $dom->getElementsByTagName('id');//recuperer les id
    		$IDS= array();
    		$i=0;
    		foreach ($ids as $lesids)//mettre tous les id dans un tablea
    		{
    			$IDS[$i]= $lesids->firstChild->nodeValue ;
    			$i++;
    		}
    		$i=0;
    		 if (is_array($_POST['projets'])) {//$_POST['projets']) c'est pour les checkbox!
                    foreach ($_POST['projets'] as $id) {
                        if (IDS[$i]==$id) {
                            //la suppression dois se faire ici
                        } else {
                            die("blablabla");
                        }
    					$i++;
                    }
    				
                }

    dans le commentaire en rouge je veux recuperer le noeud de l'id correspondant et effectuer mon removeChild


    merci julp



    ...

  2. #2
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut
    j'ai modifié mon code

    eh non ca ne marche pas :


    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
    $ids = $dom->getElementsByTagName('id');//recuperer les id
     
    		$i=0;
    		 if (is_array($_POST['projets'])) {//$_POST['projets']) c'est pour les checkbox!
                    foreach ($_POST['projets'] as $id) {
                       foreach($ids as $IDD){
    				   $tmp=$IDD->firstChild->nodeValue;
    				   		if($id==$tmp){
    						echo"test";
    							$projet= $dom->getElementsByTagName("projets")->item(0);
    							$projet->removeChild($IDD);
    						}
    				   }
                    }
     
                }
    j'ai une exception :

    Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in C:\Documents and Settings\mo\Mes documents\html\delproj.php:37 Stack trace: #0 C:\Documents and Settings\mo\Mes documents\html\delproj.php(37): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in C:\Documents and Settings\mo\Mes documents\html\delproj.php on line 37

    la ligne 37 est celle du removeChild.. et le echo"test" est executé , j'obtient l'affichage de test !


    ou est l'erreur


    ...

  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
    Je pense que vous avez fait une erreur : la suppression se fait à partir du parent donc ce serait à partir d'un élément struct et non de projets. Par ailleurs j'imagine que c'est cet élément struct que vous voulez supprimer et non simplement id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $xpath = new DomXPath($dom);
     
    if (is_array($_POST['projets'])) {
        foreach ($_POST['projets'] as $id) {
            $res = $xpath->query('/projets/struct[id = "' . $id . '"]');
            if ($res && $res->length == 1) {
                $n = $res->item(0);
                $n->parentNode->removeChild($n);
            } else {
                die('Erreur');
            }
        }
    }
    J'espère que c'est ça car il m'est difficile d'interpréter un code sans la structure du document XML qui lui est associé (un exemple succinct et testable étant préférable).

    Voir aussi : Comment supprimer les noeuds correspondant à une expression XPath en PHP5 ?

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 379
    Par défaut
    merci c parfait



    ...

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

Discussions similaires

  1. [DOM] Suppression d'un élément d'un sitemap
    Par Ptite Pupuce dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/10/2007, 23h52
  2. [DOM] suppression de plusieurs noeuds
    Par yannux dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 09/08/2007, 11h02
  3. [DOM] Suppression d'un noeud
    Par nightf dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 14/11/2006, 22h32
  4. [DOM]Suppression attribut html
    Par kobe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2006, 10h49
  5. [DOM] - Suppression de noeud.
    Par jacquesh dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 11h34

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