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