[英]phpQuery - Get data from table with no class or id
我正在尝试从表中获取一些数据,该表中的标签没有id,class或任何其他可以识别它的属性。
表结构是这样的:
<table>
<tr>
<td><b>Type</b></td>
<td>Plug and Play</td>
</tr>
<tr>
<td><b>Model</b></td>
<td>AH591Z</td>
</tr>
<tr>
<td><b>Date</b></td>
<td>02.04.2012</td>
</tr>
<tr>
<td><b>Name</b></td>
<td>CryptMachine</td>
</tr>
<tr>
<td><b>ID</b></td>
<td>9283</td>
</tr>
</table>
例如,我将如何获取型号,名称和ID,但忽略日期和类型,因为我不需要这些值。
有没有聪明的办法做到这一点与phpQuery? 到目前为止,我只是使用过phpQuery库,但是我确实掌握了基础知识,我只是无法解决这个问题。
我还没有测试过,但是也许是这样?
$doc = phpQuery::newDocumentHTML($theDocument);
$table = $doc["table"];
$model = pq($table)->find("tr:eq(1) td:eq(1)")->text();
$id = pg($table)->find("tr:eq(4) td:eq(1)")->text();
如果页面上有多个table
,则可能必须使用eq(n)指定哪个表,请记住,它们是从0而不是1枚举的。
更新:如果您不知道行的顺序,则可以使用类似的方法(再次,未经测试,对不起,但应指出正确的方向)
<?php
function getValue($table, $label) {
$lable = strtolower($label);
$rows = pq('tr', $table);
foreach($rows as $row):
if ( strtolower(pq($row)->find('td:eq(0)').text() ) === $label ):
return pq($row)->find('td:eq(1)').text();
endif;
endforeach;
}
$doc = phpQuery::newDocumentHTML($theDocument);
$table = $doc["table"];
$model = getValue($table, "Model");
$id = getValue($table, "ID");
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.