Symfony 如何在爬虫程序的每个函数中传递一个元素?

Symfony 如何在爬虫程序的每个函数中传递一个元素?,symfony,web-crawler,Symfony,Web Crawler,我用Symfony的Crawler解析我的xml,但无法获得如何传递(换句话说,继续)一个元素而不将其包含到最终数组中 例如: $node->filterXPath('//ExampleNode')->each(function(Crawler $child, $i) { if (! count($child->filterXPath('//ChildNode'))) { continue; } return $child->fi

我用Symfony的Crawler解析我的xml,但无法获得如何传递(换句话说,继续)一个元素而不将其包含到最终数组中

例如:

$node->filterXPath('//ExampleNode')->each(function(Crawler $child, $i) {
    if (! count($child->filterXPath('//ChildNode'))) {
        continue;
    }

    return $child->filterXPath('//ChildNode')->text();
});
你可以使用


如果当前的
//ExampleNode
没有子节点,为什么不
返回null | false
。。。或者跳过将文本添加到数组变量?!类似于
if($nodehasNoChildCondition){return;}$arrayOfTexts[]=$child->text()?@nifr,因为false也将添加到最终数组中。。。将删除所有
false | null
值。不客气;)@我不喜欢这个。这是一个变通办法。但也谢谢你。@nifr谢谢你的帮助。我选择使用xpath查询来解决我的问题。我以为爬虫的每个功能都可能有“继续”之类的东西,但没关系。
$crawler->reduce(function($result, $item) {
    $childNodes = $item->filterXPath('//ChildNode');

    if ($childNodes->count()) {
        $result[] = $item;
    }
});