Position actuelle: Accueil> Derniers articles> Comment extraire les enfants d'éléments HTML DOM en utilisant la fonction des enfants en PHP?

Comment extraire les enfants d'éléments HTML DOM en utilisant la fonction des enfants en PHP?

M66 2025-08-11

L'extraction des enfants d'un élément est une opération très courante lors de l'exécution du contenu HTML en rampant ou en analyse. PHP fournit une variété de façons de traiter HTML, et l'utilisation de DomDocument combinée à Domelement est une méthode relativement standard et puissante. Cependant, si vous utilisez une bibliothèque tierce comme simple_html_dom , il peut être plus pratique d'obtenir des nœuds enfants via la fonction des enfants () .

Quelle est la fonction des enfants () ?

Children () est une méthode fournie dans la bibliothèque simple_html_dom . Il est utilisé pour obtenir tous les éléments enfants d'un élément HTML (à l'exclusion des nœuds de texte). Cette méthode renvoie un tableau de nœuds enfants ou un nœud enfant avec un index spécifique.

Échantillon de HTML

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">div</span></span></span><span> </span><span><span class="hljs-attr">id</span></span><span>=</span><span><span class="hljs-string">"content"</span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">p</span></span></span><span>&gt;Le premier paragraphe</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span></span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">p</span></span></span><span>&gt;Paragraphe 2</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span></span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">span</span></span></span><span>&gt;un span</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span></span></span><span>&gt;
</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span></span></span><span>&gt;
</span></span>

Comment extraire les nœuds enfants en utilisant des enfants () ?

Étape 1: Introduire Simple_html_dom

Vous devez d'abord présenter la bibliothèque de GitHub ou de son site officiel:

 <span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-string">'simple_html_dom.php'</span></span><span>);
</span></span>

Étape 2: Chargez HTML

HTML peut être chargé à partir d'une chaîne, d'un fichier ou d'une URL.

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_get_html</span></span><span>(</span><span><span class="hljs-string">'&lt;div id="content"&gt;&lt;p&gt;Le premier paragraphe&lt;/p&gt;&lt;p&gt;Paragraphe 2&lt;/p&gt;&lt;span&gt;un span&lt;/span&gt;&lt;/div&gt;'</span></span><span>);
</span></span>

Étape 3: Sélectionnez l'élément cible et utilisez des enfants ()

 <span><span><span class="hljs-variable">$div</span></span><span> = </span><span><span class="hljs-variable">$html</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">find</span></span><span>(</span><span><span class="hljs-string">'div#content'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 获取第un id pour content de div</span></span><span>
</span><span><span class="hljs-variable">$children</span></span><span> = </span><span><span class="hljs-variable">$div</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">children</span></span><span>();         </span><span><span class="hljs-comment">// Obtenez tous les enfants</span></span><span>

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$children</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$child</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$child</span></span><span>-&gt;tag . </span><span><span class="hljs-string">': '</span></span><span> . </span><span><span class="hljs-variable">$child</span></span><span>-&gt;innertext . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
}
</span></span>

La sortie sera:

 <span><span><span class="hljs-section">p: Le premier paragraphe  </span></span><span>
</span><span><span class="hljs-section">p: Paragraphe 2  </span></span><span>
</span><span><span class="hljs-section">span: un span  </span></span><span>
</span></span>

Obtenez les nœuds enfants de l'index spécifié

La méthode des enfants () peut également accepter un paramètre pour obtenir les nœuds enfants d'un index spécifique.

 <span><span><span class="hljs-variable">$firstChild</span></span><span> = </span><span><span class="hljs-variable">$div</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">children</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$firstChild</span></span><span>-&gt;tag; </span><span><span class="hljs-comment">// Sortir: p</span></span><span>
</span></span>

Choses à noter

  1. Les enfants () n'obtiennent que des nœuds d'éléments enfants, pas des nœuds de texte ou des commentaires.

  2. Pour traverser tous les nœuds descendants (pas seulement les enfants directs), vous pouvez utiliser Find ('*') .

  3. Lorsque vous utilisez Simple_html_dom , assurez-vous que le HTML qui gère l'entrée externe est sûr et évite les XS ou autres risques d'injection.

Résumer

Utilisez la fonction Children () pour obtenir facilement tous les nœuds enfants sous un certain élément HTML, ce qui est très pratique lorsque vous devez extraire des données structurées. Combiné avec simple_html_dom , vous pouvez rapidement analyser et utiliser des documents HTML complexes, améliorant considérablement l'efficacité de développement. Pour les scénarios où des capacités de fonctionnement DOM plus fortes sont nécessaires, il est recommandé de comprendre la classe DOMDocument intégrée en PHP, ce qui offre plus de contrôle et de flexibilité.

  • Étiquettes associées:

    HTML