Посилання на сутність “foo” має закінчуватися знаком “;” роздільник


92

У мене є згенерований в Google пісочниці HTML-код, який чудово працює на HTML-сторінці. Коли я розміщую той самий код на сторінці XHTML, він видає наступний виняток:

посилання на сутність "w" має закінчуватися на ';' роздільник

Він посилається на параметр запиту wв URL-адресі в наступному srcатрибуті:

<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" />

Як це спричинено та як я можу це вирішити?

Відповіді:


207

Амперсанд &- це спеціальний символ у HTML та XML. Якщо ви хочете використовувати його як звичайний символ, ви повинні його правильно закодувати. Запишіть &amp;замість& :

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

&позначає початок кодованої сутності, наприклад, &lt;для <або &amp;для &. У вашому випадку парсер намагається інтерпретувати &wяк сутність. Але сутності завжди припиняються символом ;, тому, якщо його ;немає, ви отримуєте повідомлення про помилку.


Просто та прямо! Я насправді використовував цю відповідь для вирішення проблеми з бібліотекою Android SIMPLE xml ха-ха ...
ryvianstyron

І я щойно використав його для вирішення проблеми з API електронних таблиць Google =)
gerbz

чи можу я це виправити, не змінюючи XML?
Амджад Рехман,

0

Це спрацювало з моєї сторони, коли використовував код встановлення iq у HTML-файлі мого блогу Blogger:

<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);
})();

Дав мені помилку тут: & engineKey, після додавання & amp замінивши &, я зміг зберегти свій HTML-файл. Знання оцінені. ^ _ ^

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.