Trong mã của tôi, tôi chuyển đổi một số tài liệu xls được tạo kiểu sang html bằng cách sử dụng openoffice. Sau đó tôi phân tích các bảng bằng cách sử dụng xml_parser_create
. Vấn đề là openoffice tạo html oldschool với các thẻ <BR>
và <HR>
không được đính kèm, nó không tạo ra các loại tài liệu và không trích dẫn thuộc tính <TABLE WIDTH=4>
.Phân tích cú pháp HTML được định dạng sai trong PHP
Trình phân tích cú pháp php tôi biết không thích điều này và mang lại lỗi định dạng xml. Giải pháp hiện tại của tôi là chạy một số regex trên tệp trước khi tôi phân tích cú pháp, nhưng điều này không tốt đẹp cũng không nhanh.
Bạn có biết một trình phân tích cú pháp php (hy vọng), không quan tâm đến những loại lỗi này? Hoặc có lẽ một cách nhanh chóng để sửa một html 'bị hỏng'?
+1 để giới thiệu htmlpurifier. người ta cũng có thể xem http://simplehtmldom.sourceforge.net/. – Alexar
Máy lọc rất đẹp, nhưng cảm giác như hơi quá mức cho vấn đề. Điều tương tự cũng xảy ra với DOMParser. Nó không chính xác, rằng nó sẽ đòi hỏi rất nhiều thời gian và ram hơn một phân tích cú pháp sax đơn giản? –
Có thể nó sẽ đòi hỏi nhiều RAM hơn, và có thể là thời gian; nhưng nó sẽ làm nhiều hơn một phân tích cú pháp SAX đơn giản, mà sẽ chỉ đọc dữ liệu, và không sửa chữa nó ;;; và tôi muốn nói một trình phân tích cú pháp SAX sẽ chỉ có thể đọc XML hợp lệ - trong khi HTMLPurifier và 'DOMDocument :: loadHTML' đều có thể đọc được HTML" bị hỏng ". –