0

我找到了示例代码,但我的修改没有得到任何结果。示例代码有效,可在Puppy Tweets找到

这是我修改它的方式,我没有得到任何结果:

<script>
function handleResponse (json) {
    var results = json.query.results.json.results,
        ul = document.getElementsByTagName( 'ul' )[0],
        li = null;
    for ( var i = 0; i < results.length; i++ ) {
        li = document.createElement( 'li' );
        li.innerHTML = results[i].text;
        ul.appendChild( li );
    }
}
</script>
<script src="select * from html where url="http://www.fishingnotes.com/lakeinfo.php?id=38742" and xpath='//div[@class="lbox"]/div[1]/div/span[1]'"></script>

我已经使用 YQL 控制台来验证 Rest Query 是否正确。我需要做什么?

4

2 回答 2

0

script src="select * from html where url="http://www.fishingnotes.com/lakeinfo.php?id=38742" and xpath='//div[@class="lbox"]/div[1] /div/span[1]'">

未经测试,但这里的嵌套引号似乎有问题,所以先更改url="http://www.fishingnotes.com/lakeinfo.php?id=38742"url='http://www.fishingnotes.com/lakeinfo.php?id=38742'. 然后在您的 xpath 中的引号内的引号内有引号,我不确定是否可以处理该内联。

尝试存储"lbox"在变量中并引用变量而不是直接引用。

于 2013-04-19T20:34:06.767 回答
0

您的主要错误是尝试(仅)使用 YQL 查询作为 JavaScript 脚本的源。这需要是一个URL,它可以由 YQL 控制台为您提供,如下所示。

休息查询 URL 在 YQL 控制台中的位置

所以<script>元素可能看起来像:

<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.fishingnotes.com%2Flakeinfo.php%3Fid%3D38742%22%20and%20xpath%3D'%2F%2Fdiv%5B%40class%3D%22lbox%22%5D%2Fdiv%5B1%5D%2Fdiv%2Fspan%5B1%5D'&callback=handleResponse"></script> 

JavaScript 本身也存在一些小问题。一个基本的工作版本可能如下所示:

<script>
function handleResponse (json) {
    var ul = document.getElementsByTagName( 'ul' )[0],
        li = null;
    for ( var i = 0; i < json.query.count; i++ ) {
        li = document.createElement( 'li' );
        li.innerHTML = json.results[i];
        ul.appendChild( li );
    }
}
</script>

请参阅» 这个关于 JS Bin 的示例

于 2013-04-21T10:42:56.977 回答