Der Verweis auf die Entität "foo" muss mit dem ";" Trennzeichen

91

Ich habe Google Checkout Sandbox generiert HTML-Code, der gut in HTML-Seite funktioniert. Wenn ich denselben Code in die XHTML-Seite einfüge, wird die folgende Ausnahme ausgelöst:

Der Verweis auf die Entität "w" muss mit dem ';' Trennzeichen

Es bezieht sich auf den Anforderungsparameter win der URL im folgenden srcAttribut:

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

Wie wird das verursacht und wie kann ich es lösen?

Adnan
quelle

Antworten:

205

Das kaufmännische Und &ist ein Sonderzeichen in HTML und XML. Wenn Sie es als normales Zeichen verwenden möchten, müssen Sie es korrekt codieren. Schreiben &amp;statt& :

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

&bezeichnet den Beginn einer codierten Entität, z. B. &lt;für <oder &amp;für &. In Ihrem Fall versucht der Parser, &wals Entität zu interpretieren . Entitäten werden jedoch immer durch ein beendet. ;Wenn das ;fehlt, wird die Fehlermeldung angezeigt.

Floern
quelle
Einfach und direkt zu zeigen! Ich habe diese Antwort tatsächlich verwendet, um ein Problem mit der Android SIMPLE XML-Bibliothek zu lösen, haha ​​...
Ryvianstyron
Und ich habe es gerade benutzt, um ein Problem mit der Google Spreadsheets API zu lösen =)
gerbz
Kann ich das Problem beheben, ohne mein XML zu ändern?
Amjad Rehman A
0

Dies funktionierte auf meiner Seite, als ich den Installationscode von search iq in der HTML-Datei meines Blogger-Blogs verwendete:

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

Hat mir hier einen Fehler gegeben: & engineKey, nachdem ich & amp hinzugefügt hatte und das & ersetzt hatte, konnte ich meine HTML-Datei speichern. Wissen geschätzt. ^ _ ^

Cyberabel
quelle