我正在尝试解析外部 .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
,我尝试使用load
或loadXML
,但它不能正常工作。
任何帮助都会得到满足。
更新
要解决这个问题,我必须使用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坏了?