我正在使用PHP和xPath爬进我拥有的网站(只是抓取html而不是进入服务器)但我收到此错误:
可捕获的致命错误:无法将类DOMNodeList的对象转换为第46行的C:\ wamp\www\crawler.php中的字符串
我已经尝试回应那条线,看看我得到了什么,但我会得到同样的错误,我也尝试谷歌搜索错误,但我,最后,最终在PHP文档,发现我的例子是完全如同一个在PHP文档中除了我正在使用HTML而不是XML ...所以我不知道什么是错的...这是我的代码...
loadHTML($html); // create domxpath instance $xPath = new DOMXPath($dom); // get all elements with a particular id and then loop through and print the href attribute $elements = $xPath->query("//*[@class='nombrecomplejo']"); if ($elements != null) { foreach ($elements as $e) { echo parse_str($e); } } ?>
编辑
实际上是对不起那条线是在我评论其他东西的时候进行测试...我在这里删除它仍然有错误但是.
根据文档," $elements != null
"检查是不必要的.DOMXPath::query()
将永远返回一个DOMNodeList
,但也许它将是零长度,这不会混淆foreach
循环.
另外,请注意使用nodeValue
属性来获取元素的文本表示:
$elements = $xPath->query("//*[@class='nombrecomplejo']"); foreach ($elements as $e) { echo $e->nodeValue; }
你得到错误的原因是你不能提供除字符串以外的任何东西parse_str()
,你试过传入一个DOMElement
.