"hl"必须以谷歌小工具代码中的分律错误结尾



我正在尝试在谷歌网站中使用自定义谷歌小工具,以便能够使用javascript。我把代码放在下面。它基本上链接到已发布的电子表格,并使用谷歌可视化API创建一个可排序,可搜索的界面。

我不知道任何托管XML文件的免费站点。所以我在同一个谷歌网站页面中上传了该文件,并使用该文件的下载链接作为添加小工具对话框中的 URL。我收到以下错误。

您添加的小工具无效

不支持的功能:org.apache.shindig.common.xml.XmlException: 对实体"hl"的引用必须以";"分隔符结尾。在: (34,97)

我不明白这里的问题。代码中没有实体"hl",除了指向电子表格的链接,据我所知,我已经正确链接了该链接。如何解决这个问题?

我对HTML/Javascript很陌生。我在谷歌上搜索了这个问题,但找不到同样的问题。许多其他错误案例都有一些服务器错误。

代码如下:

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

它是网址...naWc&hl=en_GB.它似乎在 XML 上下文中使用。因此,它认为&是 XML 实体的开始。实体的语法&...;(示例:&gt;)。 实体中不允许=,因此解析器最终会&hl并报告丢失的;

您需要将&编码为实体本身(&amp;)以避免此错误。

但是,您确定可以提供此方法的 URL 吗?从错误中,我更期待一个XML字符串。

最新更新