如何解析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。