2014-05-02 17 views
27
<url> 
    <loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc> 
</url> 

lỗi trên dòng 102 tại cột 103: EntityRef: expecting ';'Lỗi xác thực XML: EntityRef: mong đợi ';'

Không thể tìm ra vấn đề có thể là gì.

Trả lời

60

URL của bạn phải được thoát.

& nhân vật được sử dụng trong XML để chèn một tài liệu tham khảo nhân vật với cú pháp &name; (lưu ý ; sau tên). Trình phân tích cú pháp mong đợi một số ; nhưng nó không thể tìm thấy nó (có nhiều dấu phân cách có sẵn, đây chỉ là trường hợp phổ biến nhất).

Giải pháp này sau đó thoát ra (làm thế nào nó được thực hiện phụ thuộc vào ngôn ngữ mà bạn sử dụng để tạo ra tập tin XML) nhưng kết quả cuối cùng phải là một cái gì đó như thế này:

<url> 
    <loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&amp;checkingCourseFrom=preLogin#.U2DcKvmSySo</loc> 
</url> 

Lưu ý rằng đồng bằng & đã được thay thế bằng phiên bản thoát khỏi nó &amp;. Để biết thêm chi tiết, xem this simple article.

Một giải pháp khả thi (nếu bạn không muốn/bạn không thể thoát khỏi) là để kèm theo URL bên trong một CDATA section như thế này:

<url> 
    <loc><![CDATA[http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo]]></loc> 
</url> 
2

Một cách khác như sau:

Thay vì " CDATA "chúng tôi có thể sử dụng htmlspecialcharsPHP chức năng gốc cho nút url. nó sẽ làm việc ít của xml nguồn cấp dữ liệu họ không muốn CDATA trong xml đầu ra vì vậy điều này sẽ hữu ích cho một ai đó.

Cảm ơn

+1

Nếu trình phân tích cú pháp không thể phân tích cú pháp - cách bạn giả sử để chạy bất kỳ chức năng nào trên các nút? Bạn không thể lặp qua đối tượng XML chút nào khi có lỗi phân tích cú pháp. – stamster

Các vấn đề liên quan