web-dev-qa-db-fra.com

La référence à l'entité "foo" doit se terminer par le signe ';' délimiteur

J'ai Google Checkout Sandbox généré code HTML qui fonctionne très bien dans la page HTML. Lorsque je mets le même code dans la page XHTML, il lève l'exception ci-dessous:

la référence à l'entité "w" doit se terminer par le ';' délimiteur

Il fait référence au paramètre de requête w dans l'URL de l'attribut ci-dessous src:

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

Comment cela est-il causé et comment puis-je le résoudre?

84
Adnan

La esperluette & est un caractère spécial en HTML et XML. Si vous voulez l'utiliser comme un caractère normal, vous devez l'encoder correctement. Écrire &amp; au lieu de &:

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

& indique le début d’une entité codée, telle que &lt; pour <, ou &amp; pour &. Dans votre cas, l'analyseur tente d'interpréter &w en tant qu'entité. Mais les entités sont toujours terminées par un ;, donc si le ; est manquant, vous obtenez le message d'erreur.

187
Floern