Ich importiere einen beliebigen HTML-Code in ein DOMDocument
mit der Funktion loadHTML()
, zB:
Ich möchte dann ein paar Attribute / Knotenwerte ändern mit DOMDocument
Methoden, die ich kein Problem machen kann.
Sobald ich diese Änderungen vorgenommen habe, möchte ich die HTML-Zeichenfolge exportieren (mit ->saveHTML()
), ohne die <html><body>...
-Tags, die der DOMDocument
automatisch zum HTML hinzufügt.
Ich verstehe, warum diese hinzugefügt werden (um ein gültiges Dokument zu gewährleisten), aber wie würde ich nur meinen bearbeiteten HTML-Code wiederherstellen (im Wesentlichen alles zwischen den <body>
-Tags)?
Ich habe diesen Beitrag gelesen und dabei einige Lösungen angeboten Ich würde das lieber "richtig" machen, also ohne einen String zu verwenden, der die <body>
-Tags ersetzt. Die Gültigkeit des HTML ist kein Problem, da es vorher durch einen HTML-Reiniger läuft.
Irgendwelche Ideen? Danke.
BEARBEITEN
Ich bin mir des $node
-Parameters bewusst, der zu saveHTML()
in PHP 5.3.6 hinzugefügt wurde, leider stecke ich mit 5.2 fest.
Vielleicht hilft der Quellcode davon - Sie ' Verwenden Sie eine Regex, um die unnötigen Strings zu entfernen:
%Vor% saveHTMLExact () - DOMDocument hat ein extrem schlecht entworfenes "Feature". Wenn der geladene HTML-Code keine <html>
und <body>
Tags enthält, fügt er sie automatisch hinzu (yup, Es gibt keine Flags, um dieses Verhalten zu deaktivieren.)
Wenn Sie also $ doc- & gt; saveHTML () aufrufen, enthält Ihr neu gespeicherter Inhalt jetzt <html><body>
und DOCTYPE
. Nicht sehr praktisch bei der Arbeit mit Code-Fragmenten (XML hat ein ähnliches Problem).
SmartDOMDocument enthält eine neue Funktion mit dem Namen saveHTMLExact (), die genau das tut, was Sie wollen - sie speichert HTML, ohne den zusätzlichen Müll hinzuzufügen, den DOMDocument tut.
Auch andere Fragen haben ähnliche Dinge gefragt:
Wie kann HTML von DOMDocument ohne HTML-Wrapper gesichert werden?
Danke, aber ich werde den Typ des ersten Tags im Body nicht unbedingt kennen, es muss generisch sein
%Vor%Tags und Links html php domdocument