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

The reference to entity "foo" must end with the ';' delimiter

提问人:Adnan 提问时间:6/26/2011 最后编辑:BalusCAdnan 更新时间:10/8/2020 访问量:100050

问:

我有 Google checkout 沙盒生成的 HTML 代码,该代码在 HTML 页面中运行良好。当我在XHTML页面中放置相同的代码时,它会抛出以下异常:

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

它在以下属性的 URL 中引用请求参数:wsrc

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

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

html xml 解析 xhtml

评论


答:

243赞 Floern 6/26/2011 #1

与号是 HTML 和 XML 中的特殊字符。如果你想把它作为一个普通字符使用,你必须正确地编码它。& 代替 &&

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

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

评论

0赞 shecodesthings 6/5/2013
简单明了!我实际上用这个答案来解决Android SIMPLE xml库的问题哈哈...
0赞 gerbz 6/26/2015
我只是用它来解决 Google 电子表格 API 的问题 =)
0赞 Amjad Rehman A 12/24/2018
我可以在不更改 XML 的情况下修复它吗?
0赞 cyberabel 11/2/2019 #2

这在我的 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);
})();

在这里给了我错误:&engineKey,添加和替换&后,我能够保存我的HTML文件。