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" />
これはどのように引き起こされ、どうすれば解決できますか?
アンパサンド&
は、HTMLおよびXMLの特殊文字です。通常の文字として使用する場合は、正しくエンコードする必要があります。 &
の代わりに&
と書く:
src="...9623&w=180&h=46&style=white&variant=text&loc=en_US"
&
は、<
の場合は<
、&
の場合は&
など、エンコードされたエンティティの開始を示します。あなたの場合、パーサーは&w
をエンティティとして解釈しようとします。ただし、エンティティは常に;
で終了します。したがって、;
がない場合、エラーメッセージが表示されます。