Tham chiếu đến thực thể “foo” phải kết thúc bằng dấu ';' dấu phân cách


92

Tôi có mã HTML được tạo trong hộp cát của Google checkout hoạt động tốt trong trang HTML. Khi tôi đặt cùng một mã vào trang XHTML, nó sẽ đưa ra ngoại lệ bên dưới:

tham chiếu đến thực thể "w" phải kết thúc bằng ';' dấu phân cách

Nó tham chiếu đến thông số yêu cầu wtrong URL trong srcthuộc tính bên dưới :

<input type="image" name="Google Checkout" alt="Fast checkout through Google"
    src="http://sandbox.google.com/checkout/buttons/checkout.gif?merchant_id=211512493599623&w=180&h=46&style=white&variant=text&loc=en_US"
    height="46" width="180" />

Điều này gây ra như thế nào và tôi có thể giải quyết nó như thế nào?

Câu trả lời:


207

Dấu và &là một ký tự đặc biệt trong HTML và XML. Nếu bạn muốn sử dụng nó như một ký tự bình thường, bạn phải mã hóa nó một cách chính xác. Viết &amp;thay vì& :

src="...9623&amp;w=180&amp;h=46&amp;style=white&amp;variant=text&amp;loc=en_US"

&biểu thị sự bắt đầu của một thực thể được mã hóa, chẳng hạn như &lt;for <hoặc &amp;for &. Trong trường hợp của bạn, trình phân tích cú pháp cố gắng diễn giải &wnhư một thực thể. Nhưng các thực thể luôn được kết thúc bởi một ;, do đó nếu ;thiếu, bạn sẽ nhận được thông báo lỗi.


Đơn giản và đi thẳng vào vấn đề! Tôi thực sự sử dụng câu trả lời này để giải quyết một vấn đề với các SIMPLE xml thư viện Android haha ...
ryvianstyron

Và tôi chỉ sử dụng nó để giải quyết một vấn đề với các API của Google Spreadsheets =)
gerbz

tôi có thể sửa nó mà không cần thay đổi XML của mình không?
Amjad Rehman A

0

Điều này đã làm việc về phía tôi, khi sử dụng mã cài đặt của iq tìm kiếm trên tệp HTML của blog Blogger của tôi:

<script type="text/javascript">
(function () {
    window.siqConfig = {
        engineKey: "6e14b3aacb2b93b658f8729adec0c030",
        forceLoadSettings: false        // change false to true if search box on your site is adding dynamically
    };
    window.siqConfig.baseUrl = "//pub.searchiq.co/";
    var script = document.createElement("SCRIPT");
    script.src = window.siqConfig.baseUrl + '/js/container/siq-container-2.js?cb=' + (Math.floor(Math.random()*999999)) + '&engineKey=' + siqConfig.engineKey;
    script.id = "siq-container";
    document.getElementsByTagName("HEAD")[0].appendChild(script);
})();

Đã báo lỗi cho tôi ở đây: & engineKey, sau khi thêm & amp thay thế & tôi đã có thể lưu tệp HTML của mình. Kiến thức được đánh giá cao. ^ _ ^

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.