Получить значения от каждого тд - PullRequest
3 голосов
/ 13 мая 2011

Я использую phpQuery для получения данных от элементов.

Я пытаюсь получить значения из первой td, секунды td и href ссылки из каждой 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?
}
?>

Ответы [ 2 ]

9 голосов
/ 13 мая 2011

Полагаю, вы их переключили ...

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

Чтобы получить значение из каждого тд, вы можете перебрать его внутри:

foreach(pq('.A2') as $tag) {
   foreach(pq($tag)->find('td') as $td) {
      // stuff
   }
}
2 голосов
/ 13 мая 2011

pq() вернул бы список совпадающих узлов (в данном случае ваши <td> теги). Вы должны перебрать этот список:

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