2017-04-04 2 views
0

Ich versuche, eine benutzerdefinierte Google Gadget in einer Google-Website zu verwenden, um in der Lage sein, Javascript zu verwenden. Ich habe den Code unten gesetzt. Sie verlinkt im Wesentlichen auf eine veröffentlichte Tabelle und erstellt mithilfe der Google-Visualisierungs-API eine sortierbare, durchsuchbare Schnittstelle."hl" muss mit Delimeter Fehler in Google Gadget-Code

Ich kenne keine freie Site, um eine XML-Datei zu hosten. Also habe ich die Datei auf der gleichen Google-Seite hochgeladen und den Download-Link dieser Datei als URL im Gadget-Dialogfeld zum Hinzufügen verwendet. Ich habe den folgenden Fehler erhalten.

Das Gadget, das Sie hinzugefügt ist nicht gültig

Nicht unterstützte Funktion: org.apache.shindig.common.xml.XmlException: Die Bezug auf entity "hl" muss mit dem Ende ';' Trennzeichen. An: (34,97)

verstehe ich nicht, das Problem here.There ist keine Einheit „hl“ im Code außer in der Verbindung mit der Tabelle, die ich richtig verknüpft habe, soweit ich weiß, . Wie behebt man das?

Ich bin sehr neu in HTML/Javascript. Ich habe eine Google-Suche nach dem Problem durchgeführt, konnte aber nicht das gleiche Problem finden. Viele andere Fälle mit dem Fehler hatten einen Serverfehler.

Hier ist der Code:

<?xml version="1.0" encoding="UTF-8" ?> 
<Module> 
    <ModulePrefs title="Database Search" /> 
    <Content type="html"> 

<html> 
<head> 

<title>Example of Google Spreadsheet Data Visualisation</title> 
</head> 

<body> 

<form id="form1" method="post" > <label> 
<input id="search" name="search" type="text" /> 
</label> 
<label> 
<input type="submit" /> 
</label> 
</form> 
<p> 


<script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
     google.load('visualization', '1', {packages: ['table']}); 
</script> 
<script type="text/javascript"> 
    var visualization; 

    function drawVisualization() { 

     var query = new google.visualization.Query(
      'http://spreadsheets.google.com/tq?key=0Au0WkOi_oKm0dDNwYkUxRkRqUzVKa1ZEWnFyYXpnaWc&hl=en_GB'); 

     query.setQuery('SELECT A, B, C where upper(A) like upper("%<?php echo $search; ?>%") or upper(B) like upper("%<?php echo $search; ?>%") order by A asc label A "Type", B "Title", C "Date added"'); 

     query.send(handleQueryResponse); 
    } 

    function handleQueryResponse(response) { 
     if (response.isError()) { 
     alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
     return; 
     } 

     var data = response.getDataTable(); 

    visualization = new google.visualization.Table(document.getElementById('table')); 
    visualization.draw(data, {legend: 'bottom'}); 

    } 

    google.setOnLoadCallback(drawVisualization); 
    </script> 

    <div id="table"></div> 

</div> 

</body> 
</html> 
    </Content> 
</Module> 

Antwort

0

Es ist die URL ...naWc&hl=en_GB. Es scheint, dass es in einem XML-Kontext verwendet wird. So denkt es, & ist der Beginn einer XML-Entität. Die Syntax für Entitäten lautet &...; (Beispiel: &gt;). = ist in einer Entität nicht zulässig, daher endet der Parser mit &hl und meldet die fehlende ;.

Sie müssen die & als eine Einheit selbst codieren (&amp;), um diesen Fehler zu vermeiden.

Sind Sie sicher, dass Sie eine URL für diese Methode angeben können? Von dem Fehler würde ich eher eine XML-Zeichenfolge erwarten.

Verwandte Themen