DOmDocument->removeChild() et descendants

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : DOmDocument->removeChild() et descendants

par AVI3000 » 11 juil. 2007, 16:27

$grandParent->removeChild($petitFilsAsupprimer); /* pas bon, ça plante */

/* donc recherche de paternité pour appliquer la méthode removeChild */
$noeudAsupprimer->parentNode->removeChild($noeudAsupprimer) ; /* bon */

// équivalent à DomDocument->removeDescendant($celuiCi); méthode à créer 

par béka » 11 juil. 2007, 16:20

si xpath te permet de faire des requête sur les noeuds. Donc c'est une bonne méthode. Et puis elle est propre.

par AVI3000 » 11 juil. 2007, 15:57

merci Cyrano,

franck_benoit: l'exemple que tu cites ne traite que les fils (si je l'ai bien compris)
DomNode->remove_child — Supprime un fils de la liste des noeuds fils


le but est de supprimer des noeuds (petits-enfants , arrière, ...) renvoyé par xpath.

Le code suivant plante:
$grandParent->removeChild($petitFilsAsupprimer);
la nuit portant conseil, j'ai trouvé un façon de faire.
je ne sais pas s'il elle est très académique.
$xpath = new DOMXPath($doc);
foreach ( $xpath->query('//noeudCherche') as $noeudAsupprimer ) {
        $noeudAsupprimer->parentNode->removeChild($noeudAsupprimer);
}
testé, impeccable
S'il quelqu'un a mieux, je suis preneur.

par franck_benoit » 11 juil. 2007, 07:35

par Cyrano » 11 juil. 2007, 07:33

Ben je pense que tu n'es pas dans la bonne rubrique. Cela me fait plutôt penser à du Javascript.
Non, DOM fait partie des extensions de PHP, même si JavaScript peut aussi le traiter, mais d'une autre manière et coté client ;)

par AB » 11 juil. 2007, 02:50

Ben je pense que tu n'es pas dans la bonne rubrique. Cela me fait plutôt penser à du Javascript.

A part ça peux tu donner un exemple de ce que tu veux faire?

DOmDocument->removeChild() et descendants

par AVI3000 » 10 juil. 2007, 23:11

Bonsoir,

Dans le manuel, on parle d'enfants pour cette fonction

Quand est-il des descendants (petits-enfants , arrières ... )

Existe-t-il une fonction qui supprime les descendants

Merci