我正在尝试使用PHP Simple HTML DOM Parser提取嵌套在<div>
标记内的<code>
的内容,但我总是得到错误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
标记内部遇到问题。
我在做什么有什么不对? 希望你们能指出我正确的方向,非常感谢你的支持!
答案 0 :(得分:1)
simplehtmldom 等除去了预格式化的标签。 如果您希望识别代码标签,请删除或注释掉* simple_html_dom.php中的第1076行*
答案 1 :(得分:0)
根据Simple HTML DOM的源代码,它在将HTML加载到解析器时自动删除代码标记。
如果您需要这些功能,则需要删除simplehtmldom.php中remove_noise()
函数中对load()
的引用。
这应该会产生您期望的结果,但显然可能会引入其他问题,具体取决于作者首先要删除标签的原因。