Nel mio codice converto alcuni documenti in stile xls in html usando openoffice. Quindi analizzo le tabelle utilizzando xml_parser_create
. Il problema è che openoffice crea oldschool html con i tag <BR>
e <HR>
non aperti, non crea doctypes e non cita gli attributi <TABLE WIDTH=4>
.Analisi di HTML mal formattato in PHP
I parser di php che conosco non mi piacciono e producono errori di formattazione xml. La mia soluzione attuale è di eseguire alcune espressioni regolari sul file prima di analizzarlo, ma questo non è né bello né veloce.
Conosci un php-parser (si spera incluso), che non si cura di questi tipi di errori? O forse un modo veloce per sistemare un html "rotto"?
+1 per introduzione htmlpurifier. si può anche guardare http://simplehtmldom.sourceforge.net/. – Alexar
Il depuratore è bello, ma sembra un po 'eccessivo per il problema. La stessa cosa vale per DOMParser. Non è corretto, che richiederà molto più tempo e ram di un semplice parser di sax? –
Forse richiederà più RAM e possibilmente tempo; ma farà più di un semplice parsing SAX, che leggerà solo i dati e non lo riparerà ;;; e direi che un parser SAX sarà in grado di leggere solo XML valido - mentre HTMLPurifier e 'DOMDocument :: loadHTML' sono entrambi in grado di leggere l'HTML" danneggiato ". –