PHP简单HTML DOM-如何通过TD中的特定值查找表?

PHP简单HTML DOM-如何通过TD中的特定值查找表?,php,html,web-scraping,simple-html-dom,Php,Html,Web Scraping,Simple Html Dom,我的桌子看起来像 <table width="100%" border="0" cellpadding="2" cellspacing="0"> <tr> <td><strong>NPA/Area Code:</strong></td> <td><a href="/area-code/area-code-229.asp">229</a></td> <td><s

我的桌子看起来像

<table width="100%" border="0" cellpadding="2" cellspacing="0">
<tr>
<td><strong>NPA/Area Code:</strong></td>
<td><a href="/area-code/area-code-229.asp">229</a></td>
<td><strong>NXX Use Type:</strong></td>
<td>LANDLINE</td>
</tr>
<tr>
<td><strong>NXX/Prefix:</strong></td>
<td>428</td>
<td><strong>NXX Intro Version:</strong></td>
<td>2000-10-31</td>
</tr>
</table>

NPA/区号:
NXX使用类型:
固定电话
NXX/前缀:
428
NXX简介版本:
2000-10-31
有太多没有
id
class
的表,所以很难找到我想要的表。我正在考虑使用
td
中的文本来选择
。可能吗?因为我想从中提取数据的站点是这样编码的。我不确定如何使用简单的HTML DOM操作代码,选择此表,然后选择
td
中的文本。我知道如何提取
td
中的值,所以问题是如何选择我想要的这个特定表。我想收集数据的链接是

感谢您的帮助。 谢谢。

可能会有帮助

基本上,您可以得到如下第n个元素:

$table = $html->find('table', 3);

只要表的数量没有改变,您就可以扩展它来做您想做的事情。

我建议您为该表创建一个标记,因为您试图获取下面的表
AreaCode/前缀229-428详细信息
,然后使用该标记,然后指向您想要的下一个同级表。例如:

$html = file_get_html('http://www.area-codes.com/exchange/exchange.asp?npa=229&nxx=428');
$table = null;
$needle = 'AreaCode/Prefix 229-428 Details';
foreach($html->find('h3') as $marker) {
    if($marker->innertext == $needle) {
        $table = $marker->next_sibling();
        break;
    }
}

$data = array();
if($table) {
    foreach($table->children() as $k => $tr) {
        foreach($tr->children as $td) {
            $data[$k][] = $td->innertext;
        }
    }
}

echo '<pre>';
print_r($data);
$html=file\u get\u html('http://www.area-codes.com/exchange/exchange.asp?npa=229&nxx=428');
$table=null;
$Pineder='区域代码/前缀229-428详细信息';
foreach($html->find('h3')作为$marker){
如果($marker->innertext==$pinder){
$table=$marker->next_sibling();
打破
}
}
$data=array();
若有($表){
foreach($table->children()作为$k=>$tr){
foreach($tr->children as$td){
$data[$k][]=$td->innertext;
}
}
}
回声';
打印(数据);

您到底想解析什么?jQuery允许您这样做:
$('table:has(td:contains(“LANDLINE”)))
-simple不能这样做,但是有嵌套的表。所以伯爵搞砸了,太棒了!谢谢,这正是我要找的,但我没有能力将其翻译成代码:)@Eshwar是的,因为你不能直接指出这么多的表,因为它们太多(而且很复杂),所以这种方式更好。我很高兴这有帮助是的,再次感谢,这教会了我关于记号笔的知识,我很高兴也很感谢:)