【问题标题】:PHP - selecting a particular entry with YQLPHP - 使用 YQL 选择特定条目
【发布时间】:2010-12-11 15:10:10
【问题描述】:

所以我使用 YQL 来获取 youtube 用户的订阅人数。

为此,我使用如下 URL 进行查询:

$query = 'https://query.yahooapis.com/v1/public/yql?q='.urlencode("SELECT * FROM xml WHERE url='http://gdata.youtube.com/feeds/api/users/{$id}'").'&format=json&callback=';

然后我解码响应并找到我正在寻找的数组条目,如下所示:

  $response = json_decode($response, true);
  $subscriber_count = $response['query']['results']['entry']['statistics']['subscriberCount'];

它工作得很好,除了我不喜欢我这样做的方式:) 我的意思是,有没有办法可以直接从上面的$query URL 获取subscriberCount 值?我不需要整个 XML,只需要一个条目。

【问题讨论】:

  • 什么意思,“直接来自$query URL”?
  • 很好,查询 url 被传递给 curl,它向 yahoo 发出 xml 请求。我希望有一种方法可以只向雅虎请求我需要的数据,而不是完整的 xml 结构。

标签: php xml arrays yql


【解决方案1】:

您可以做的是将 YQL 返回的数据量限制为您真正感兴趣的数据,方法如下:

SELECT statistics.subscriberCount FROM xml WHERE ...

您仍然会在您感兴趣的数字周围有一些结构化的 XML/JSON 元素,但至少它更少(见下文)。不确定这是否是您想要的?

<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
    yahoo:count="1" yahoo:created="2011-01-06T23:21:32Z" yahoo:lang="en-US">
    <results>
        <entry xmlns="http://www.w3.org/2005/Atom">
            <yt:statistics
                xmlns:yt="http://gdata.youtube.com/schemas/2007" subscriberCount="7"/>
        </entry>
    </results>
</query>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-10
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多