2017-04-04 7 views
0

javascriptを使用できるように、GoogleサイトでカスタムGoogleガジェットを使用しようとしています。私は以下のコードを入れました。基本的には、公開されたスプレッドシートにリンクし、Google視覚化APIを使用してソート可能な検索可能なインターフェースを作成します。"hl"はGoogleガジェットコードのdelimeterエラーで終了する必要があります

私はXMLファイルをホストするためのフリーサイトを知りません。そこで、同じGoogleサイトのページにファイルをアップロードし、そのファイルのダウンロードリンクをガジェットの追加ダイアログボックスのURLとして使用しました。私は次のエラーを受け取りました。

には、追加したガジェットは有効ではありません

サポートされていない機能:org.apache.shindig.common.xml.XmlException:で終わらなければなりませんエンティティ「HL」へ 参照「;」デリミタ。 At:(34,97)

ここで問題は分かりません。私が知る限り、正しくリンクされているスプレッドシートへのリンクを除いて、コードにはエンティティ "hl"はありません。 これを修正するには?

私はHTML/Javascriptの新機能です。私は問題のGoogle検索を行ったが、同じ問題を見つけることができませんでした。このエラーの他の多くのケースでは、サーバーエラーが発生していました。

<?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> 

答えて

0

それはURL ...naWc&hl=en_GBです:

は、ここでは、コードです。 XMLコンテキストで使用されているようです。だから、&はXMLエンティティの始まりだと思っています。エンティティの構文は&...;(例:&gt;)です。エンティティでは=は許可されていないため、パーサーは&hlになり、欠落した;が報告されます。

このエラーを回避するには、&をエンティティ自体(&amp;)としてエンコードする必要があります。

ただし、このメソッドにURLを指定することはできますか?エラーから、私はXML文字列をもっと期待します。

関連する問題