PHP Simple HTML DOM Parser 如何使用 find 方法获取第三个表

Posted

技术标签:

【中文标题】PHP Simple HTML DOM Parser 如何使用 find 方法获取第三个表【英文标题】:PHP Simple HTML DOM Parser how to get Third table using find method 【发布时间】:2013-03-01 00:49:36 【问题描述】:

我有如下结构的 html 代码。

如何使用 php Simple HTML DOM 查找方法从该 HTML 代码中获取第三个表的内容?

<table  cellspacing="0" cellpadding="0" border="0">
  <tbody>
   <tr>
     <td>
       <table  cellspacing="0" cellpadding="0" border="0">
        <tbody>
          <tr>
           <td>
              <table  cellspacing="0" cellpadding="0" border="0">
              .......
              </table>

          </td>
         <tr>
        ..........
     <td>
  <tr>

</tbody>
</table>

【问题讨论】:

【参考方案1】:

要获取第三个表,在 find 方法中传递第二个参数(索引从 0 开始)。

  $html = file_get_html(<your_file_url/html_code>);    
  $html->find("table", 2);

【讨论】:

【参考方案2】:

表格是这样嵌套的:

$dom->find("table", 0); # first table
$dom->find("table table", 0); # second table
$dom->find("table table table", 0); # third table

【讨论】:

【参考方案3】:

只是一个想法,试试这个:

// Find first <table> in first <td>
$html = file_get_html('yours.htm');
$var = $html->find('td', 0)->find('table', 0);

【讨论】:

谢谢。但它不可能与 ->find($pattern) 仅因为我将它与不同的不同数据一起使用。 什么是'不同-不同的数据'是什么意思?我只是想知道。 @egigundari:什么是 file_get_html(),我没有得到任何参考。 @egigundari 我已经创建了用于从不同类型的 HTML 文件中获取数据/详细信息的脚本,我正在使用 $html->find($pattern) 方法 @Suresh Raidon 使用 'PHP Simple HTML DOM Parser' 我猜,你可以用谷歌搜索一下。【参考方案4】:

我不太确定,但您可以尝试以下方法:

$dom = new DomDocument;
$dom->loadXML($YourHTML);

//I have written as item(1) to point at the second table
$params = $dom->getElementsByTagName('table')->item(1);

【讨论】:

谢谢。但它不可能使用 (PHP simple html dom parser) ->find($pattern) 只是因为我将它与不同的不同数据一起使用。

以上是关于PHP Simple HTML DOM Parser 如何使用 find 方法获取第三个表的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP Simple HTML DOM Parser 查找和删除 html 标签

使用 PHP 和 Simple HTML DOM 解析 HTML 时遇到问题

PHP 之simple_html_dom实现网页数据采集

php解析html类库simple_html_dom

使用php simple html dom parser解析html标签

PHP Simple Html Dom 解析一个 php 表单