【问题标题】:Get the values from each td从每个 td 获取值
【发布时间】:2011-05-13 15:14:12
【问题描述】:

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

我试图从每个tr 的第一个td、第二个tdhref 链接中获取值。

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

【问题讨论】:

    标签: php parsing phpquery


    【解决方案1】:

    我猜你已经把它们换了..

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

    要从每个 td 中获取一个值,您可以在内部对其进行迭代:

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

    【讨论】:

    • 我在迭代它们时忘记了它们是纯 DOMNode。你必须再次用pq() 包裹起来。
    【解决方案2】:

    pq() 将返回匹配节点的列表(在这种情况下是您的 &lt;td&gt; 标签)。您必须遍历该列表:

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

    【讨论】:

    • 如何从列表中获取第一个 td 和第二个 td?和价值?
    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 2014-02-08
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2017-05-01
    相关资源
    最近更新 更多