我正在尝试使用简单的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;
}
答案 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;
}