从.dat文件中解析html

时间:2012-12-09 00:21:51

标签: php domdocument

我正在尝试解析外部 .dat 文件中的一些 html

我会正常使用以下代码:

$html = new DOMDocument();
$html->loadHTMLFile('http://www.bvl.com.pe/includes/cotizaciones_todas.dat');
$xpath = new DOMXPath($html);
$path = '/somepath';
$nodelist = $xpath->query($path);
echo $nodelist->item(0)->nodeValue;

但是我收到了这个错误:

DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in http://www.bvl.com.pe/includes/cotizaciones_todas.dat, line: 15

我知道问题是loadHTMLFile,我尝试使用loadloadXML,但它不能正常工作。 任何帮助都会得到满足。


更新

要解决这个问题,我必须使用libxml_use_internal_errors(TRUE)来处理错误。 现在我遇到了一个新问题,我想计算表中有多少<tr>个标签。我正在使用以下代码:

$html = new DOMDocument();
libxml_use_internal_errors(TRUE);
$html->loadHTMLFile('http://www.bvl.com.pe/includes/cotizaciones_todas.dat');
libxml_clear_errors();
$xpath = new DOMXPath($html);
$tbody = $html->getElementsByTagName('tbody')->item(0);
$path = 'count(tr)';
$trCount = $xpath->evaluate($path,$tbody);

但是我收到了这个错误消息:PHP Catchable fatal error: Argument 2 passed to DOMXPath::evaluate() must be an instance of DOMNode, null given我已经使用了与其他文件相同的代码,一切正常,但是在这种情况下它不起作用,可能是因为html坏了?

0 个答案:

没有答案