2012-03-18 8 views
11

Tôi sử dụng DOMDocument để chỉnh sửa một số tệp HTML, nhưng một số chủ đề có trong không gian tên của chúng. Vì vậy DOMDocument tự động thay đổi không gian thành% 20 và sau đó không thể tìm thấy chúng.Lỗi DOM DOMococument thực thể Entity 'nbsp' không được xác định

Đây là cách trông lỗi chính xác:

Warning: DOMDocument::load() [domdocument.load]: Entity 'nbsp' not defined in file:///C:/Path/To/The/File/01%20c%2040-1964.html, line: 11 in C:/Path/To/class.php on line 51 

Bạn knouw làm thế nào để sửa chữa lỗi này?

Cảm ơn trước cho câu trả lời

+0

Nếu không tải nhưng nối thêm dữ liệu XML và nhận được lỗi này, có một câu hỏi liên quan: [DOMDocument appendXML với các ký tự đặc biệt] (http://stackoverflow.com/q/4645738/367456) – hakre

Trả lời

13

Sử dụng DOMDocument::loadHTMLFile() thay vì load(). Đó là những gì nó đã được thực hiện cho. HTML không phải là XML.

XML không biết thực thể được đặt tên  . Tuy nhiên, nếu bạn sử dụng loadHTML, trình phân tích cú pháp XML sẽ nhận được HTML có tên các thực thể được nạp để lỗi đó biến mất.

Xem thêm: XML parser error: entity not defined.

+0

Tôi có XML với thẻ HTML không được chèn vào đúng cách. Tôi muốn tải nó bằng cách sử dụng load(), bởi vì nó là XML. Tôi có thể làm gì với điều đó? – mrarm