[英]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>
</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.