可以使用simplexml来搜索html吗?

chr*_*ris 16 html php parsing simplexml

我想从表中获取数据而不使用正则表达式.我很高兴使用simplexml来解析RSS提要,并想知道它是否可以用来从另一个页面中获取表格.

例如.用curl抓取页面或只是file_get_contents(); 然后使用simplexml来获取内容?

phi*_*hag 32

您可以使用loadHTMLDOM模块中的函数,然后通过simplexml_import_dom以下方式将该DOM导入SimpleXML :

$html = file_get_contents('http://example.com/');
$doc = new DOMDocument();
$doc->loadHTML($html);
$sxml = simplexml_import_dom($doc);
Run Code Online (Sandbox Code Playgroud)


Jon*_*ier 7

如果这是XHTML - 是的,这绝对是可能的.真正的XHTML最终只是XML,因此可以使用XML解析器进行解析.

但是,SimpleXML只接受严格的XML.如果你无法获得有效的XHTML,那么DOMDocument首先将它放入不太严格的库中就可以了解这个技巧(源于此处):

<?php
  $html = file_get_contents('http://...');
  $doc = new DOMDocument();
  $doc->strictErrorChecking = FALSE;
  $doc->loadHTML($html);
  $xml = simplexml_import_dom($doc);
?>
Run Code Online (Sandbox Code Playgroud)