我正在尝试使用 PHP Simple HTML DOM 解析器提取嵌套在<code>
标签中的<div>
的内容,但我总是收到错误Trying to get property of non-object in...
好像解析器在我的<div>
中找不到任何东西
我使用的代码是
include_once('simplehtmldom_1_5/simple_html_dom.php');
// Create a DOM object
$html = new simple_html_dom();
// Load HTML
$html->load('<code><div>hello</div></code>');
// Extract div content
echo $html->find('div',0)->innertext;
但是,如果我不使用<code><div>hello</div></code>
作为我的示例代码,而是使用<span><div>hello</div></span>
它就可以工作了......似乎我只看code
标签内部就遇到了问题。
我正在做的事情有什么问题? 希望你们能为我指出正确的方向,非常感谢您的支持!
simplehtmldom等会去除预先格式化的标签。 如果要识别代码标记,请删除或注释掉 *simple_html_dom.php* 中的第 1076 行
根据Simple HTML DOM的源代码,当它将HTML加载到解析器中时,它会自动删除代码标记。
如果你需要这个功能,你需要在simplehtmldom.php的load()
函数中删除对remove_noise()
的引用。
这应该会产生您期望的结果,但显然很可能会引入其他问题,具体取决于作者首先删除标签的原因。