无法解析为<code> tag - PHP - simple html dom</code>

时间:2014-03-12 23:49:15

标签: php html parsing dom

我正在尝试使用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标记内部遇到问题。

我在做什么有什么不对? 希望你们能指出我正确的方向,非常感谢你的支持!

2 个答案:

答案 0 :(得分:1)

simplehtmldom 等除去了预格式化的标签。 如果您希望识别代码标签,请删除或注释掉* simple_html_dom.php中的第1076行*

答案 1 :(得分:0)

根据Simple HTML DOM的源代码,它在将HTML加载到解析器时自动删除代码标记。

如果您需要这些功能,则需要删除simplehtmldom.php中remove_noise()函数中对load()的引用。

这应该会产生您期望的结果,但显然可能会引入其他问题,具体取决于作者首先要删除标签的原因。