PHP DOM简单解析器从td获取值

时间:2015-04-09 13:36:46

标签: php html parsing domparser

我在使用Dom简单解析器时遇到了一些麻烦,我想从html文件中的表中获取一些值,我只想要在td中具有id =' ok'的值。

我的意思是:

<tr>
     <td id="no"> 18 </td>
     <td id="yes"> 19 </td>
     <td id="maybe"> 20 </td>
     <td id="ok"> 21 </td>    ---- i only want this value
<tr>

<tr>
     <td id="no"> 18 </td>
     <td id="yes"> 19 </td>
     <td id="maybe"> 20 </td>
     <td id="no"> 25 </td>
<tr>

我试图使用此代码:

$ret = $html->find('td[id='ok']'); 

但似乎它不起作用。有人有想法吗?

2 个答案:

答案 0 :(得分:1)

它应该。这是一个不同的选择器。 两者都适合我。

require_once 'simple_html_dom.php';

$html = file_get_html('test.html');
$elem = $html->find('td#ok', 0);
echo $elem->plaintext;

注意:除非指定了第二个参数(索引),否则find()返回一个数组

答案 1 :(得分:1)

另一个解决方案(没有第三方解析器)是使用DOMDocumentXPATH

$doc = new DOMDocument();
// Making validator to be less strict (bec. invalid XML structure will cause parsing failure)
$doc->strictErrorChecking = false;
// Reading HTML directly in argument (saving one line of code)
$doc->loadHTML( file_get_contents('/some/test.html') );

$xml = simplexml_import_dom($doc);
// Applying XPATH on parsed document
$nodes = $xml->xpath("//*[@id='ok']")