【问题标题】:Error: "Trying to get property of nonobject" and invalid foreach loop argument错误:“试图获取非对象的属性”和无效的 foreach 循环参数
【发布时间】:2014-08-10 21:14:56
【问题描述】:

我想使用简单的 HTML DOM 解析器来解析表格的 HTML。我想将每个<tr><td> 标签放入一个数组中,然后将这些数组放入一个更大的数组中。

我关注the code given here 作为参考。

但是当我第一次按原样测试这段代码时,我得到了这个错误

Notice: Trying to get property of non-object in C:\xampp\htdocs\tests.php on line 42

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\tests.php on line 44

请告诉我为什么会收到此错误,以及如何解决。

代码如下:

<?php

$html_string = 'Edit question</a></div></div><div class="content"><div class="formulation"><h4 class="accesshide">Question text</h4><input type="hidden" name="q18:1_:sequencecheck" value="1" /><div class="qtext"><table style="width: 454px; height: 269px;" border="1"><caption> </caption>
<tbody>
<tr>
<td>Name</td>
<td>Age</td>
<td>CGPA</td>
</tr>
<tr>
<td>Alice</td>
<td>24</td>
<td>4</td>
</tr>
<tr>
<td>Bob</td>
<td>14</td>
<td>3</td>
</tr>
<tr>
<td>Amy</td>
<td>33</td>
<td>2</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Blah BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah?</p></div><div class="ablock"><div class="prompt">Select one:</div><div class="answer"><div class="r0"><input type="radio" name="q18:1_answer" value="0" id="q18:1_answer0" /><label for="q18:1_answer0">a. [1]ir[/1][2]34[/2]</label> </div>';

$dom = new domDocument;

@$dom->loadHTML($data);
$dom->preserveWhiteSpace = false;

$tables = $dom->getElementsByTagName('table');

echo get_inner_html($tables->item(0));

function get_inner_html( $node ) 
{
    $innerHTML= '';
    $children = $node->childNodes;

    foreach ($children as $child)
    {
        $innerHTML .= $child->ownerDocument->saveXML( $child );
    }

    return $innerHTML;
}

【问题讨论】:

    标签: php html-parsing domdocument


    【解决方案1】:

    你在loadHTML中有另一个变量名$data,把它改成@$dom-&gt;loadHTML($html_string);

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2020-01-16
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 2018-05-23
      相关资源
      最近更新 更多