web-dev-qa-db-ja.com

エンティティ「foo」への参照は「;」で終わる必要がありますデリミタ

HTMLページで正常に動作するHTMLコードを生成したGoogleチェックアウトサンドボックスがあります。同じコードをXHTMLページに配置すると、次の例外がスローされます。

エンティティ「w」への参照は「;」で終わる必要がありますデリミタ

以下のw属性内のURLで要求パラメーター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" />

これはどのように引き起こされ、どうすれば解決できますか?

84
Adnan

アンパサンド&は、HTMLおよびXMLの特殊文字です。通常の文字として使用する場合は、正しくエンコードする必要があります。 &amp;の代わりに&と書く

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

&は、&lt;の場合は<&amp;の場合は&など、エンコードされたエンティティの開始を示します。あなたの場合、パーサーは&wをエンティティとして解釈しようとします。ただし、エンティティは常に;で終了します。したがって、;がない場合、エラーメッセージが表示されます。

187
Floern