Referensi ke entitas "foo" harus diakhiri dengan ';' pembatas

94

Saya memiliki kode HTML yang dihasilkan kotak pasir Google checkout yang berfungsi dengan baik di halaman HTML. Ketika saya meletakkan kode yang sama di halaman XHTML, itu memunculkan pengecualian di bawah ini:

referensi ke entitas "w" harus diakhiri dengan ';' pembatas

Ini merujuk pada parameter permintaan wdi URL pada srcatribut di bawah ini :

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

Bagaimana ini disebabkan dan bagaimana cara mengatasinya?

Adnan
sumber

Jawaban:

209

Ampersand &adalah karakter khusus dalam HTML dan XML. Jika Anda ingin menggunakannya sebagai karakter biasa, Anda harus menyandikannya dengan benar. Tulis &amp;alih-alih& :

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

&menunjukkan awal entitas yang dikodekan, seperti &lt;untuk <, atau &amp;untuk &. Dalam kasus Anda, pengurai mencoba menafsirkan &wsebagai entitas. Tetapi entitas selalu diakhiri oleh ;, jadi jika ;hilang Anda mendapatkan pesan kesalahan.

Floern
sumber
Sederhana dan langsung ke tujuan! Saya sebenarnya menggunakan jawaban ini untuk memecahkan masalah dengan pustaka xml Android SEDERHANA haha ​​...
ryvianstyron
Dan saya baru saja menggunakannya untuk memecahkan masalah dengan Google Spreadsheets API =)
gerbz
dapatkah saya memperbaikinya tanpa mengubah XML saya?
Amjad Rehman A
0

Ini berfungsi di pihak saya, saat menggunakan kode instalasi iq pencarian di file HTML blog Blogger saya:

<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);
})();

Memberi saya kesalahan di sini: & engineKey, setelah menambahkan & amp mengganti & saya bisa menyimpan file HTML saya.

cyberabel
sumber