In meinem Code umwandeln ich einige gestylt xls-Dokument mit Openoffice HTML. ich analysieren dann die Tabellen xml_parser_create
verwenden. Das Problem ist, dass OpenOffice oldschool html mit nicht geschlossenen <BR>
und <HR>
Tags erstellt, es erstellt keine Doctypes und keine Attribute <TABLE WIDTH=4>
.Parsing von schlecht formatiert HTML in PHP
Die PHP-Parser, die ich kenne, mögen das nicht, und ergeben XML-Formatierungsfehler. Meine derzeitige Lösung besteht darin, einige Regexes über die Datei auszuführen, bevor ich sie analysiere, aber das ist weder schön noch schnell.
Kennen Sie einen (hoffentlich eingeschlossenen) php-Parser, der sich nicht um solche Fehler kümmert? Oder vielleicht ein schneller Weg, um einen 'kaputten' HTML zu reparieren?
+1 für die Einführung htmlpurifier. kann man sich auch http://simplethmdom.sourceforge.net/ anschauen. – Alexar
Der Luftreiniger ist nett, aber fühlt sich wie ein bisschen Overkill für das Problem an. Das Gleiche gilt für den DOMParser. Ist es nicht richtig, dass es viel mehr Zeit und Ram benötigt als ein einfacher Sax Parser? –
Vielleicht wird es mehr RAM und möglicherweise Zeit benötigen; aber es wird mehr tun als ein einfaches SAX-Parse, das nur Daten lesen und nicht reparieren würde ;;; und ich würde sagen, dass ein SAX-Parser nur in der Lage ist, gültiges XML zu lesen - während HTMLPurifier und "DOMDocument :: loadHTML" beide in der Lage sind, "gebrochenes" HTML zu lesen. –