Ссылка на объект «foo» должна заканчиваться символом «;» разделитель

94

У меня есть сгенерированный тестовой программой 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" />

Как это вызвано и как я могу это решить?

Аднан
источник

Ответы:

209

Амперсанд &- это специальный символ в HTML и XML. Если вы хотите использовать его как обычный символ, вы должны правильно его закодировать. Напишите &amp;вместо& :

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

&обозначает начало закодированной сущности, например, &lt;для <или &amp;для &. В вашем случае парсер пытается интерпретировать &wкак объект. Но сущности всегда завершаются символом ;, поэтому, если ;он отсутствует, вы получите сообщение об ошибке.

Floern
источник
Просто и понятно! На самом деле я использовал этот ответ, чтобы решить проблему с библиотекой Android SIMPLE xml, ха-ха ...
ryvianstyron
И я просто использовал его, чтобы решить проблему с Google Spreadsheets API =)
gerbz
я могу исправить это, не меняя свой XML?
Амджад Рехман A
0

С моей стороны это сработало, когда я использовал установочный код search 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-файл.

киберабель
источник