【问题标题】:How do I access the data returned by a YQL request?如何访问 YQL 请求返​​回的数据?
【发布时间】:2014-02-26 10:15:47
【问题描述】:

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

select * from htmlstring where 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=store%3A%2F%2Fdatatables.org%2Falltableswithkeys

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

我在 YQL 页面上找不到任何可以告诉我如何执行此操作的内容,并且我的所有尝试(使用或不使用 jQuery)均未成功。

我想要的文本显然是在返回的对象中的某个地方。我该怎么办?

【问题讨论】:

    标签: javascript yql


    【解决方案1】:

    您可以通过 JavaScript 中的三种基本方法来阅读 XML:

    1. ActiveX
    2. 创建文档
    3. XmlHttpRequest

    以下是一些基本的使用示例。每个都创建一个 xmlDoc 对象,您可以在之后使用它。

    ActiveX:

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

    创建文档:

    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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      相关资源
      最近更新 更多