当前位置:  开发笔记 > 编程语言 > 正文

PHP和xPath问题

如何解决《PHP和xPath问题》经验,为你挑选了1个好方法。

我正在使用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);
    } 
}                                                   
?>

编辑

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



1> Tomalak..:

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

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

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

foreach ($elements as $e) {
  echo $e->nodeValue;
}

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

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有