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?

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.


¡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. ^ _ ^

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.