Ссылка на сущность "foo" должна заканчиваться на ';' ограничитель
У меня есть HTML-код Google Checkout, который отлично работает на 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" />
Как это вызвано и как я могу решить это?
1 ответ
Амперсанд &
это специальный символ в HTML и XML. Если вы хотите использовать его как обычный символ, вы должны правильно его кодировать. Написать &
вместо &
:
src="...9623&w=180&h=46&style=white&variant=text&loc=en_US"
&
обозначает начало закодированного объекта, такого как <
за <
, или же &
за &
, В вашем случае парсер пытается интерпретировать &w
как сущность. Но сущности всегда завершаются ;
Таким образом, если ;
отсутствует, вы получите сообщение об ошибке.
С моей стороны это сработало, когда я использовал установочный код 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, после добавления &, заменив &, я смог сохранить свой HTML-файл. Знания ценились. ^_^