PHP和xPath问题

Tsu*_*oku 4 php xpath

我正在使用PHP和xPath爬进我拥有的网站(只是抓取html而不是进入服务器)但我收到此错误:

可捕获的致命错误:无法将类DOMNodeList的对象转换为第46行的C:\ wamp\www\crawler.php中的字符串

我已经尝试回应那条线,看看我得到了什么,但我会得到同样的错误,我也尝试谷歌搜索错误,但我,最后,最终在PHP文档,发现我的例子是完全如同一个在PHP文档中除了我正在使用HTML而不是XML ...所以我不知道什么是错的...这是我的代码...

<?php
$html = file_get_contents('http://miurl.com/mipagina#0');
// create document object model
$dom = new DOMDocument();
// load html into document object model
@$dom->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);
    } 
}                                                   
?>
Run Code Online (Sandbox Code Playgroud)

编辑

实际上是对不起那条线是在我评论其他东西的时候进行测试...我在这里删除它仍然有错误但是.

Tom*_*lak 10

根据文档," $elements != null"检查是不必要的.DOMXPath::query()将永远返回一个DOMNodeList,但也许它将是零长度,这不会混淆foreach循环.

另外,请注意使用nodeValue属性来获取元素的文本表示:

$elements = $xPath->query("//*[@class='nombrecomplejo']");

foreach ($elements as $e) {
  echo $e->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)

你得到错误的原因是你不能提供除字符串以外的任何东西parse_str(),你试过传入一个DOMElement.