我正在尝试从表中获取一些数据,其中标记没有id,类或任何其他可以识别它的属性。
表格结构如下:
<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库,但我确实已经掌握了基础知识,我无法将我的大脑包围起来。
答案 0 :(得分:1)
我没有测试过这个,但是这样的事情可能会吗?
$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");
?>