La referencia a la entidad "foo" debe terminar con ';' delimitador

92

Tengo un código HTML generado por caja de arena de Google Checkout que funciona bien en una página HTML. Cuando pongo el mismo código en la página XHTML, arroja la siguiente excepción:

la referencia a la entidad "w" debe terminar con ';' delimitador

Se refiere al parámetro de solicitud wen la URL en el siguiente srcatributo:

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

¿Cómo se produce esto y cómo puedo solucionarlo?

Adnan
fuente

Respuestas:

207

El ampersand &es un carácter especial en HTML y XML. Si desea utilizarlo como un carácter normal, debe codificarlo correctamente. Escribe en &amp;lugar de& :

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

&denota el inicio de una entidad codificada, como &lt;para <o &amp;para &. En su caso, el analizador intenta interpretarlo &wcomo una entidad. Pero las entidades siempre terminan con un ;, por lo tanto, si ;falta, aparece el mensaje de error.

Floern
fuente
¡Simple y directo al grano! De hecho, me solía esta respuesta para resolver un problema con la biblioteca XML muy simples Android jaja ...
ryvianstyron
Y solo lo usé para resolver un problema con la API de hojas de cálculo de Google =)
gerbz
¿Puedo solucionarlo sin cambiar mi XML?
Amjad Rehman A
0

Esto funcionó por mi parte, al usar el código de instalación de Search iq en el archivo HTML de mi blog de 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);
})();

Me dio un error aquí: & engineKey, después de agregar & amp reemplazando el & pude guardar mi archivo HTML. Conocimiento apreciado. ^ _ ^

cyberabel
fuente