Maison >développement back-end >tutoriel php >Comment enregistrer le HTML DOMDocument sans balises wrapper indésirables ?

Comment enregistrer le HTML DOMDocument sans balises wrapper indésirables ?

DDD
DDDoriginal
2024-12-15 07:47:15793parcourir

How to Save DOMDocument HTML Without Unwanted Wrapper Tags?

Comment enregistrer le code HTML d'un document DOM sans HTML Wrapper ?

Énoncé du problème :

L'extrait de code ci-dessous tente d'enregistrer le contenu HTML d'un DOMDocument sans les wrappers de balises XML, HTML, body et p, mais il rencontre des problèmes lorsque le contenu contient éléments au niveau du bloc.

$postarray['post_content'] = $d->saveXML($d->getElementsByTagName('p')->item(0));

Correction avec les options loadHTML :

Pour résoudre ce problème, utilisez la méthode loadHTML() avec les options suivantes :

$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

Ces options demandent à Libxml d'analyser le code HTML sans ajouter d'éléments implicites ni de valeur par défaut. doctype:

  • LIBXML_HTML_NOIMPLIED: Désactive l'ajout automatique d'éléments HTML/corps implicites.
  • LIBXML_HTML_NODEFDTD: Empêche un doctype par défaut de être ajouté quand on ne l'est pas trouvé.

Résultat :

En utilisant ces options, saveHTML() affichera désormais le contenu HTML sans les wrappers inutiles.

Remarque :

  • Libxml 2.6 est requis pour LIBXML_HTML_NOIMPLIED.
  • Libxml 2.7.8 est requis pour LIBXML_HTML_NODEFDTD.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn