对实体“ foo”的引用必须以“;”结尾 定界符


92

我有Google Checkout沙箱生成的HTML代码,该代码在HTML页面中可以正常工作。当我在XHTML页面中放置相同的代码时,它将引发以下异常:

对实体“ w”的引用必须以“;”结尾 定界符

w在以下src属性的URL中引用请求参数:

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

这是怎么引起的,我该如何解决?

Answers:


207

“&”号&是HTML和XML中的特殊字符。如果要将其用作常规字符,则必须正确编码。&amp;而不是&

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

&表示已编码实体的开头,例如&lt;for <&amp;for &。在您的情况下,解析器尝试将其解释&w为实体。但是实体总是以终止;,因此,如果;缺少,则会收到错误消息。


简单明了!我实际上使用了这个答案来解决Android SIMPLE xml库的问题哈哈...
ryvianstyron 2013年

我只是用它来解决Google Spreadsheets API =)的问题
gerbz 2015年

如何在不更改XML的情况下进行修复?
Amjad Rehman A

0

当在Blogger博客的HTML文件中使用search iq的安装代码时,这对我来说很有效:

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

在添加&amp替换了amp后,在这里给了我错误:&engineKey,我能够保存我的HTML文件。知识赞赏。^ _ ^

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.