如何解析HTML/XML并从中提取信息?


当前回答

对于1a和2:我将投票支持新的Symfony Componet类DOMCrawler(DOMCrawler)。此类允许类似于CSS选择器的查询。看看这个演示文稿,看看真实世界的例子:news-of-the-symfony2-world。

该组件设计为独立工作,可以在没有Symfony的情况下使用。

唯一的缺点是它只适用于PHP5.3或更高版本。

其他回答

JSON和来自XML的数组分为三行:

$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

大大!

对于HTML5,html5lib已经被放弃多年了。我能找到的唯一一个最近更新和维护记录的HTML5库是一周多前刚刚发布到beta 1.0的HTML5 php。

顺便说一下,这通常被称为屏幕刮擦。我为此使用的库是SimpleHTMLDomParser。

您可以尝试的另一个选项是QueryPath。它的灵感来自jQuery,但在服务器上使用PHP,并在Drupal中使用。

SimpleHtmlDom的第三方替代方案使用DOM而不是字符串解析:phpQuery、Zend_DOM、QueryPath和FluentDom。