如何访问YQL请求返回的数据?

时间:2014-02-03 01:59:30

标签: javascript yql

使用YQL控制台,我输入了:

从htmlstring中选择*其中url ='finance.yahoo.com / q / op?s = PG'

显示面板将整个页面的原始html显示为XML,这就是我想要的。

它给了我页面底部的REST查询,如下所示:

http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20htmlstring%20where%20url%3D'finance.yahoo.com%2Fq%2Fop%3FS%3DPG'和; ENV =商店%3A%2F%2Fdatatables.org%2Falltableswithkeys < / p>

如何将该url放在脚本中(使用或不使用jQuery),以便我可以在字符串中获得相同的输出,然后我可以解析它?

我在YQL页面上找不到任何告诉我如何操作的内容,而且我的所有尝试(有或没有jQuery)都没有成功。

我想要的文字显然是在返回的对象中的某个地方。我怎么得到它?

1 个答案:

答案 0 :(得分:0)

您可以在JavaScript中基本上使用三种方法来阅读XML:

  1. 的ActiveX
  2. createDocument
  3. 的XmlHttpRequest
  4. 以下是一些基本用法示例。每个都创建一个xmlDoc对象,您可以在之后使用它。

    的ActiveX:

    var url = 'http://query.yahooapis.com/....';
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    while(xmlDoc.readyState != 4) {};
    xmlDoc.load(url);
    readXML();
    

    createDocument:

    var url = 'http://query.yahooapis.com/....';
    xmlDoc = document.implementation.createDocument("", "", null);
    xmlDoc.onload = readXML;
    xmlDoc.load(url);
    

    的XMLHttpRequest

    var url = 'http://query.yahooapis.com/....';
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", url, false);
    xmlhttp.setRequestHeader('Content-Type', 'text/xml');
    xmlhttp.send("");
    xmlDoc = xmlhttp.responseXML;
    readXML();