簡體   English   中英

phpQuery-從沒有類或ID的表中獲取數據

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM