繁体   English   中英

如何选择 <td> 通过他的bgcolor属性使用PHP简单html dom解析器

[英]How to select a <td> by his bgcolor attribute using PHP simple html dom parser

我必须使用PHP提取此特定HTML。 由于我没有任何课程或唯一的ID,因此我尝试使用他的bgcolor attrib,但没有成功...

<td bgcolor="#F5EC97" width="154" valign="top" align="left" height="55">
             <font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b><font color="#CC6633">CITY</font></b><br>
              <b>xyz</b><br>
              xyz<br>
              Tel. 555/22327<br>
              &nbsp;

    </td>

这是我尝试过的代码:

$res = $html->find('td[bgcolor=#F5EC97]');

有什么建议吗?

解析为DOMDocument

$doc= new DOMDocument();
$doc->loadHTML($html);

然后使用纯DOM getElementsByTagName选择元素。

foreach ($doc->getElementsByTagName('td') as $td) {
    if ($td->getAttribute('bgcolor')=='#F5EC97') {
        // do something with $td
    }
}

或使用XPath

$xpath= new DOMXpath($doc);
foreach ($xpath->query("//td[@bgcolor='#F5EC97']") as $td) {
   // do something with $td
}

终于明白了...

它也适用于simple_html_dom,只是在html颜色代码中始终使用小写字母,例如#f5ec97。 即使原始文档中的颜色代码为大写,也不能使用大写。

<?php

    require_once("simple_html_dom.php");

    $html = file_get_html('pharma/w_43.htm');
    foreach($html->find('td[bgcolor=#f5ec97]') as $article){
        echo $article->innertext; 

    }

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM