外部の.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
問題が であることはわかっています。 orloadHTMLFile
を使用してみましたが、どちらも機能していません。どんな助けでも感謝します。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 が壊れているためですか?