当解析一个大的HTML文件时,出现了致命错误:
致命错误:未捕获的错误:在null上调用成员函数getElementsByTagName()
当我的脚本试图在表中不存在的元素上使用DOMnode成员函数时,会出现问题。 这是演示该问题的一小段代码:
<?php
$html = "
<table>
<tr>
<td>Foo 0</td>
<td>Bar 0</td>
</tr>
<tr>
<td>Foo 1</td>
<td>Bar 1</td>
</tr>
</table>
";
$dom = new domDocument;
$dom->loadHTML($html);
// Ok
$foo_0 = $dom->getElementsByTagName('td')[0]->textContent;
$bar_0 = $dom->getElementsByTagName('td')[1]->textContent;
// Ok
$foo_1 = $dom->getElementsByTagName('td')[2]->textContent;
$bar_1 = $dom->getElementsByTagName('td')[3]->textContent;
// No ok -> How to check if it exists ?
$foo_2 = $dom->getElementsByTagName('td')[4]->textContent;
?>
当脚本尝试访问第四个td元素时,发生致命错误。
答案 0 :(得分:0)
感谢@Jonathan提供解决方案:
if(!is_null($dom->getElementsByTagName('td')[4])){
$foo_2 = $dom->getElementsByTagName('td')[4]->textContent;
}