J'ai un problème avec le code suivant dont la boucle ne déplace pas tous
les noeuds comme je le souhaiterais puisqu'elle bloque après le
déplacement du premier noeud :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mickael Wolff
Nicolas Poulain a écrit :
J'ai un problème avec le code suivant dont la boucle ne déplace pas tous les noeuds comme je le souhaiterais puisqu'elle bloque après le déplacement du premier noeud :
Tu fais une erreur de conception. Un document DOM est un arbre, pas une liste chaînée. La conséquence en est que pour parcourir tout les nœuds, il faut parcourir récursivement les nœuds enfants des nœuds enfants (s'il y en a).
<?php $doc = new DOMDocument(); $doc->loadXML("<book><chap1><parA/><parB/></chap1><chap2/></book>"); $bar = $doc->documentElement->firstChild; $bump = $doc->documentElement->lastChild; foreach ($bar->childNodes as $n) { $bump->appendChild($n);
Tu ne demandes pas au enfants s'ils ont des enfants ?
J'ai un problème avec le code suivant dont la boucle ne déplace pas tous
les noeuds comme je le souhaiterais puisqu'elle bloque après le
déplacement du premier noeud :
Tu fais une erreur de conception. Un document DOM est un arbre, pas
une liste chaînée. La conséquence en est que pour parcourir tout les
nœuds, il faut parcourir récursivement les nœuds enfants des nœuds
enfants (s'il y en a).
<?php
$doc = new DOMDocument();
$doc->loadXML("<book><chap1><parA/><parB/></chap1><chap2/></book>");
$bar = $doc->documentElement->firstChild;
$bump = $doc->documentElement->lastChild;
foreach ($bar->childNodes as $n) {
$bump->appendChild($n);
Tu ne demandes pas au enfants s'ils ont des enfants ?
J'ai un problème avec le code suivant dont la boucle ne déplace pas tous les noeuds comme je le souhaiterais puisqu'elle bloque après le déplacement du premier noeud :
Tu fais une erreur de conception. Un document DOM est un arbre, pas une liste chaînée. La conséquence en est que pour parcourir tout les nœuds, il faut parcourir récursivement les nœuds enfants des nœuds enfants (s'il y en a).
<?php $doc = new DOMDocument(); $doc->loadXML("<book><chap1><parA/><parB/></chap1><chap2/></book>"); $bar = $doc->documentElement->firstChild; $bump = $doc->documentElement->lastChild; foreach ($bar->childNodes as $n) { $bump->appendChild($n);
Tu ne demandes pas au enfants s'ils ont des enfants ?