Symfony 如何在爬虫程序的每个函数中传递一个元素?
我用Symfony的Crawler解析我的xml,但无法获得如何传递(换句话说,继续)一个元素而不将其包含到最终数组中 例如: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
$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;
}
});