Introduction
DOMDocument, une classe PHP, offre une approche pratique pour l'analyse et manipuler des documents HTML. Cependant, lorsqu'ils tentent de conserver les balises HTML lors de l'extraction du contenu, les utilisateurs peuvent rencontrer des difficultés. Cet article approfondit le concept sous-jacent du DOM et propose des solutions pour relever ce défi.
Comprendre le DOM et les nœuds
DOMDocument représente les documents HTML sous forme d'arborescences hiérarchiques de nœuds. Chaque nœud peut avoir des nœuds enfants, formant une structure complexe. Il est crucial de reconnaître que les éléments HTML, ainsi que leurs attributs et leur contenu textuel, sont tous représentés sous forme de nœuds au sein d'un DOMDocument.
Résoudre le problème de préservation des balises
Les éléments fournis le code récupère avec succès le nœud DIV avec l'identifiant "showContent". Cependant, il récupère uniquement le contenu textuel du DIV, à l'exclusion des balises HTML elles-mêmes. En effet, le code utilise $tag->nodeValue, qui extrait uniquement le texte plutôt que les nœuds réels.
Solution : Traverser les nœuds
Pour préserver les nœuds HTML, vous devez parcourir les nœuds enfants de votre nœud cible. Le code ci-dessous présente cette approche :
$dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $tags = $xpath->query('.//div[@id="showContent"]'); foreach ($tags as $tag) { echo $dom->saveXML($tag); echo '
'; }
Récupération d'informations spécifiques à partir de HTML
Si vous avez besoin d'informations spécifiques à partir du document HTML, telles que des liens de la table, vous pouvez modifier la requête XPath pour sélectionner le nœuds appropriés. Par exemple :
foreach ($div->getElementsByTagName('a') as $link) { echo $dom->saveXML($link); }
Ressources supplémentaires
Pour obtenir de l'aide supplémentaire sur l'utilisation de DOMDocument, reportez-vous aux ressources suivantes :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3