A referência à entidade “foo” deve terminar com ';' delimitador


92

Eu tenho o código HTML gerado pelo sandbox do Google checkout que funciona bem na página HTML. Quando coloco o mesmo código na página XHTML, ele lança a exceção abaixo:

a referência à entidade "w" deve terminar com ';' delimitador

Ele está se referindo ao parâmetro de solicitação wno URL no srcatributo abaixo :

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

Como isso é causado e como posso resolver isso?

Respostas:


207

O e comercial &é um caractere especial em HTML e XML. Se você quiser usá-lo como um caractere normal, terá que codificá-lo corretamente. Escreva em &amp;vez de& :

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

&denota o início de uma entidade codificada, como &lt;para <ou &amp;para &. No seu caso, o analisador tenta interpretar &wcomo uma entidade. Mas as entidades são sempre encerradas por um ;, portanto, se ;estiver faltando, você receberá a mensagem de erro.


Simples e direto ao ponto! Na verdade, usei esta resposta para resolver um problema com a biblioteca xml SIMPLE do Android haha ​​...
ryvianstyron

E acabei de usá-lo para resolver um problema com a API do Google Spreadsheets =)
gerbz

posso consertar sem mudar meu XML?
Amjad Rehman A

0

Isso funcionou da minha parte, ao usar o código de instalação de pesquisa do iq no arquivo HTML do meu blog do 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);
})();

Erro aqui: & engineKey, depois de adicionar & amp substituir o & consegui salvar meu arquivo HTML. Conhecimento apreciado. ^ _ ^

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.