Jusqu'à présent, je travaille sur un fichier HTML comme celui-ci Je souhaite sélectionner le nœud suivant de chaque "div" qui a son nom égal à "noeud" et j'essaie : p> mais je viens d'obtenir une erreur p> Erreur fatale: appel à la méthode non définie DOMPEMENT :: Next_Sibling () P>
BlockQuote> Quelqu'un peut-il me dire ce qui ne va pas avec mon script s'il vous plaît? p> p>
4 Réponses :
Il n'y a pas de fonction appelée Next_Sibling () dans DOM. Vous devez utiliser la propriété Nextsibling définie dans Domnode (http://www.php.net/manual/fr/class.domnode.php).
foreach($els as $el) { if($el->nextSibling) $j++; }
L'erreur est assez claire: il n'y a pas de méthode Cependant, pour l'obtenir immédiatement: p> domelement :: Next_Sibling () code>. Lire le Documentation pour
Domelement code>
et c'est le parent Classe DOMNODE code>
. Vous pensez à la propriété em> DOMNODE :: Nextsibling code>.
Nextsibling code> obtient le prochain noeud , pas le prochain élément em>. (Il n'y a pas de méthode ni de propriété DOM qui obtient l'élément suivant. Vous devez continuer à utiliser
Nextsibling code> et vérifier
NODETYPE code> jusqu'à ce que vous frappiez un autre élément.) Votre question dit que vous voulez le NOUVEAU NODE Mais je pense que vous pouvez réellement vouloir l'élément suivant (le
$nextelement = $xpath->query("following-sibling::*[1]", $currentdiv);
C'est vrai, je veux obtenir l'élément suivant mais il suffit de manquer d'utiliser Nextsibling code>. Merci beaucoup pour votre belle explication que le script fonctionne maintenant bien comme prévu!
Je ne sais pas php code> mais ce
xpath code> les obtient:
Ignorer des nœuds de texte (espérons-le, non testé) comme fonction p> utilisation p>