Tôi cần tải một tài liệu XML vào PHP đến từ một nguồn bên ngoài. XML không khai báo mã hóa của nó và chứa các ký tự không hợp lệ như &
. Nếu tôi cố gắng tải tài liệu XML trực tiếp trong trình duyệt, tôi gặp lỗi như "Một ký tự không hợp lệ được tìm thấy trong nội dung văn bản" cũng khi tải tệp trong PHP, tôi nhận được rất nhiều cảnh báo như: xmlParseEntityRef: no name in Entity
và Input is not proper UTF-8, indicate encoding ! Bytes: 0x9C 0x31 0x21 0x3C
.Sửa XML không đúng định dạng trong PHP trước khi xử lý bằng cách sử dụng các hàm DOMDocument
Rõ ràng là XML không được định dạng đúng và chứa các ký tự không hợp lệ cần được chuyển đổi thành các thực thể XML.
Điều này là do nguồn cấp dữ liệu XML được tạo thành từ dữ liệu do nhiều người dùng khác cung cấp và rõ ràng nó không được xác thực hoặc định dạng lại trước khi tôi nhận được.
Tôi đã nói chuyện với nhà cung cấp nguồn cấp dữ liệu XML và họ nói rằng họ đang cố gắng để các nhà cung cấp nội dung phân loại nó, nhưng điều này có vẻ ngớ ngẩn vì họ phải xác thực đầu vào trước. Về cơ bản, tôi cần sửa chữa XML sửa bất kỳ lỗi mã hóa nào và chuyển đổi bất kỳ ký tự không hợp lệ nào thành các thực thể XML sao cho XML tải vấn đề khi sử dụng các hàm DOMDocument của PHP.
Mã của tôi hiện trông giống như:
$feedURL = '3704017_14022010_050004.xml';
$dom = new DOMDocument();
$dom->load($feedURL);
Ví dụ tập tin XML cho thấy vấn đề mã hóa (nhấp vào để tải): feed.xml
Ví dụ XML chứa ký tự chưa được chuyển đổi sang đơn vị XML:
<?xml version="1.0"?>
<feed>
<RECORD>
<ID>117387</ID>
<ADVERTISERNAME>Test</ADVERTISERNAME>
<AID>10544740</AID>
<NAME>This & This</NAME>
<DESCRIPTION>For one day only this is > than this.</DESCRIPTION>
</RECORD>
</feed>
"Làm thế nào để tất cả các khách hàng hài lòng khác (?) Đối phó với dữ liệu và tại sao tôi là người duy nhất khốn khổ" - đó là câu hỏi tôi muốn hỏi nhà cung cấp. Bạn có thể cung cấp một tài liệu ví dụ (chính xác) không? – VolkerK
Tôi đã tự hỏi bản thân mình.Tôi đã nói chuyện với họ và họ nói với tôi rằng họ đang gặp vấn đề về chất lượng dữ liệu và đã yêu cầu các nhà cung cấp nội dung phân loại nó. Tôi giả định rằng các khách hàng khác đã tìm thấy cách sửa lỗi nguồn cấp dữ liệu XML trước khi họ cố xử lý nó. Do đó câu hỏi của tôi. – Camsoft
@VolkerK Tôi đã tải lên một tập con của toàn bộ tài liệu XML dưới dạng XML đầy đủ với hơn 42.000 dòng. – Camsoft