简单的html dom无法正常工作

时间:2013-04-02 11:15:20

标签: php cakephp simple-html-dom

我正在尝试使用简单的html dom来解析我的html数据。但每当我使用下面的代码我得到错误: -

Trying to get property of non-object

我的代码是: -

foreach($html->find('div.row') as $val)
        {
            $name = $val->find('h1')->innertext;
            echo $name;
        }

但是当我这样使用它时,我得到了正确的结果: -

foreach($html->find('div.row') as $val)
        {
            foreach($val->find('h1') as $v)
             echo $v->innertext;
        }

2 个答案:

答案 0 :(得分:2)

find()方法返回一个数组,除非您将索引指定为第二个参数。你的第二段代码工作,因为它循环遍历数组并获取数组中每个元素的innertext,而你的第一段代码试图获得实际数组的innertext属性。 / p>

例如,如果您想获得h1的第一次(或唯一)出现,请执行以下操作:

$name = $val->find('h1', 0)->innertext;

答案 1 :(得分:0)

试试这个

$dom = new DOMDocument();
$dom->loadHTML($html);

$elements = $dom->getElementsByTagName('div');
foreach ($elements as $child) {
    echo $child->nodeValue;
}