phpQuery:如何过滤一些节点?

时间:2017-05-30 08:18:33

标签: php filtering reddit phpquery

我在这里遇到了一些问题。 我正在从Reddit解析JSON数据(例如https://www.reddit.com/r/Chilledout.json);我需要设置一个过滤数据的功能,以删除每个没有媒体属性的帖子。

当我发现要删除哪些节点时,我怎样才能取消'他们并返回一个过滤的phpQuery节点?

以下代码返回

  

致命错误:无法使用QueryPath \ DOMQuery类型的对象作为数组   在...

PS:在我的代码中无法改变的是这个函数接收一个phpQuery节点;并且也应该返回一个。

function get_track_nodes($body_node){

    $selector = '>data >children';
    $options = array(
        'omit_xml_declaration'      => true,
        'ignore_parser_warnings'    => true,
        'convert_from_encoding'     => 'auto',
        'convert_to_encoding'       => 'UTF-8'
    );

    $post_nodes = qp( $body_node, null, $options )->find($selector);

    foreach($post_nodes as $key=>$node) {
        $media = qp( $node, null, self::$querypath_options )->find('media')->innerHTML();
        if (!$media) unset($post_nodes[$key]);
    }

    return $post_nodes;
}

0 个答案:

没有答案