2011-05-13 90 views
3

我使用phpQuery從元素中獲取數據。從每個td獲取值

我試圖從第一個td,秒tdhref鏈接從每個tr鏈接的值。

<table> 
    <tr class="A2"> 
    <td> Text 1 </td> 
    <td> Text 2 </td> 
    <td> Text 3 </td> 
    <td> <a href="linkhere1"> Text 131</a> </td> 
    </tr> 
    <tr class="A2"> 
    <td> Text 4 </td> 
    <td> Text 5 </td> 
    <td> Text 6 </td> 
    <td> <a href="linkhere2"> Text 123213</a> </td> 
    </tr> 
    <tr class="A2"> 
    <td> Text 7 </td> 
    <td> Text 8 </td> 
    <td> Text 9 </td> 
    <td> <a href="linkhere3.php"> Text 213213 </a> </td> 
    </tr> 
</table> 

如何做到這一點?我曾嘗試:

<? 
require('phpQuery.php'); 

$file = file_get_contents('test.txt', true); 

$html = phpQuery::newDocument($file); 

foreach($html->find('.A2') as $tag) {           
    echo pq('td'); // problem here? 
} 
?> 
+0

pq()來自哪裏 – Ibu 2011-05-13 15:35:07

回答

9

我猜你有他們交換..

foreach(pq('.A2') as $tag) { 
    $tds = pq($tag)->find('td'); 
} 

要想從每個TD的值,你可以在這裏面進行迭代:

foreach(pq('.A2') as $tag) { 
    foreach(pq($tag)->find('td') as $td) { 
     // stuff 
    } 
} 
+1

致命錯誤:調用未定義的方法DOMElement :: find() – user622378 2011-05-13 15:30:45

+0

我在迭代它們時忘記了它們是純DOMNode。你必須再次用'pq()'包裝。 – Thai 2011-05-13 15:34:06

+0

非常非常非常好...! – 2014-06-09 12:13:41

2

pq()將返回匹配的節點列表(您<td>標籤,在這種情況下)。你必須遍歷該列表:

foreach(pq('td') as $td) { 
    ... do something ... 
} 
+0

如何從列表中獲得第一個td和第二個td?和價值? – user622378 2011-05-13 15:24:39