从每个td获取值

时间:2011-05-13 15:14:13

标签: php parsing phpquery

我正在使用phpQuery从元素中获取数据。

我正在尝试从每个td获取前td,秒hreftr链接的值。

<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?
}
?>

2 个答案:

答案 0 :(得分: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 :(得分:2)

pq()会返回匹配节点列表(在这种情况下为您的<td>标记)。你必须遍历该列表:

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