2010-09-15 56 views
0

可能重复:
How to parse and process HTML with PHP?如何用PHP5和DOM解析HTML页面?

我工作的一些代码段,应该让给出的HTML文档的一个非常具体的HTML标签的内容。

$html = "<html>..........truncated.........<div>blablabla<br />xy</div>....."; 
$dom = new DomDocument(); 
$dom->loadHTML($html); 

$divs = $dom->getElementsByTagName('div'); 

echo $divs->item(0)->nodeValue.'<br>'; 

的HTML代码仅仅是一个例子,表示的是非常的问题我遇到:我想这个DIV的内容,我需要保持内部的标签! 什么的nodeValue(以及“的textContent”)呢,还是返回了正确的节点with all inner tags strippedhttp://docs.php.net/manual/en/class.domnode.php

我出的想法如何得到这个权利大气压的内容...我需要的是等效以JavaScript的“innerHTML的”左右......但我不能找到这样的方法:(

我如何得到这个权利?

回答

0

DOM只在解析形成良好和100%有效的XML好,所以除非你使用100%有效的XHTML,它会失败。

你想使用的是PHP Simple HTML DOM Parser库。

在该网站上有很多教程可以帮助您满足您的需求。

+2

当你用'DOMDocument :: loadHTML'或'DOMDocument :: loadHTMLFile'装载DOM时,DOM可以解析真实世界的HTML。这将利用libxml的HTML解析器模块。 – Gordon 2012-02-12 11:09:58

+0

根据我的经验,最好的情况就是这样。不过,我上次尝试的时间是在2009年。也许它有所改进。 – 2012-02-21 16:13:07

0

你见过phpQuery?可能是太多了,你在做什么试图完成,但值得一看。