Heim >Backend-Entwicklung >PHP-Tutorial >Wie speichere ich DOMDocument-HTML ohne unerwünschte Wrapper-Tags?

Wie speichere ich DOMDocument-HTML ohne unerwünschte Wrapper-Tags?

DDD
DDDOriginal
2024-12-15 07:47:15793Durchsuche

How to Save DOMDocument HTML Without Unwanted Wrapper Tags?

Wie speichere ich HTML eines DOM-Dokuments ohne HTML-Wrapper?

Problemstellung:

Der folgende Codeausschnitt versucht zu speichern den HTML-Inhalt eines DOM-Dokuments ohne die XML-, HTML-, Body- und p-Tag-Wrapper, es treten jedoch Probleme auf, wenn der Inhalt enthält Elemente auf Blockebene.

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

Behebung mit LoadHTML-Optionen:

Um dieses Problem zu beheben, verwenden Sie die Methode „loadHTML()“ mit den folgenden Optionen:

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

Diese Optionen weisen Libxml an, den HTML-Code zu analysieren, ohne implizite Elemente oder einen Standard hinzuzufügen doctype:

  • LIBXML_HTML_NOIMPLIED: Deaktiviert das automatische Hinzufügen impliziter HTML-/Body-Elemente.
  • LIBXML_HTML_NODEFDTD: Verhindert einen Standard-Doctype von hinzugefügt werden, wenn dies nicht der Fall ist gefunden.

Ergebnis:

Mit diesen Optionen gibt saveHTML() nun den HTML-Inhalt ohne die unnötigen Wrapper aus.

Hinweis:

  • Libxml 2.6 ist erforderlich für LIBXML_HTML_NOIMPLIED.
  • Libxml 2.7.8 ist für LIBXML_HTML_NODEFDTD erforderlich.

Das obige ist der detaillierte Inhalt vonWie speichere ich DOMDocument-HTML ohne unerwünschte Wrapper-Tags?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn