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 () .
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.
<span><span><span class="hljs-tag"><<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>>
</span><span><span class="hljs-tag"><<span class="hljs-name">p</span></span></span><span>>Le premier paragraphe</span><span><span class="hljs-tag"></<span class="hljs-name">p</span></span></span><span>>
</span><span><span class="hljs-tag"><<span class="hljs-name">p</span></span></span><span>>Paragraphe 2</span><span><span class="hljs-tag"></<span class="hljs-name">p</span></span></span><span>>
</span><span><span class="hljs-tag"><<span class="hljs-name">span</span></span></span><span>>un span</span><span><span class="hljs-tag"></<span class="hljs-name">span</span></span></span><span>>
</span><span><span class="hljs-tag"></<span class="hljs-name">div</span></span></span><span>>
</span></span>
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>
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">'<div id="content"><p>Le premier paragraphe</p><p>Paragraphe 2</p><span>un span</span></div>'</span></span><span>);
</span></span>
<span><span><span class="hljs-variable">$div</span></span><span> = </span><span><span class="hljs-variable">$html</span></span><span>-></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>-></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>->tag . </span><span><span class="hljs-string">': '</span></span><span> . </span><span><span class="hljs-variable">$child</span></span><span>->innertext . </span><span><span class="hljs-string">"<br>"</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>
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>-></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>->tag; </span><span><span class="hljs-comment">// Sortir: p</span></span><span>
</span></span>
Les enfants () n'obtiennent que des nœuds d'éléments enfants, pas des nœuds de texte ou des commentaires.
Pour traverser tous les nœuds descendants (pas seulement les enfants directs), vous pouvez utiliser Find ('*') .
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.
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