【问题标题】:Simple DOM html parser read html table简单的 DOM html 解析器读取 html 表
【发布时间】:2014-03-18 23:19:57
【问题描述】:

我正在尝试通过 php dom 解析器读取此 HTML 表的特定值。我希望我的代码仅读取“td 宽度”标签并仅从表中输出这些项目,如下所示:

" WAITLIST, 91630, ACCY 2001, 10, Intro Financial Accounting, 3.00, Zou, Y, Duques 251, 9:35AM-10:50AM, 01/13/14-04/28/14"

这是 HTML 表格:

<table width="100%"  border="0" cellspacing="1" cellpadding="0" bgcolor="#006699">
                                <tr align="center" class="tableRow1Font">
                                    <td width="7%">WAITLIST</td>
                                    <td width="5%">91630</td>
                                    <td width="11%">
                ACCY <A HREF="http://www.gwu.edu/~bulletin/ugrad/accy.html#2001" target="_blank">2001</A>
                                    </td>
                                    <td width="5%">10</td>
                                    <td width="16%">Intro Financial Accounting</td>
                                    <td width="6%">3.00</td>
                                    <td width="8%"> Zou, Y</td>
                                    <td width="8%"><A HREF="http://www.gwu.edu/~map/building.cfm?BLDG=DUQUES" target="_blank" >DUQUES</a> 251</td>
                                    <td width="13%">TR<br>09:35AM - 10:50AM</td>
                                    <td width="14%">
                                        01/13/14 - 04/28/14
                                    </td>
                                    <td width="7%">

                                    </td>
                                </tr>
                                                     </table

这是我的 php 代码,它抓取整个表格,其中一些我不想在我的输出中出现的元素,并重复输出多次:

 // Retrieve the DOM from a given URL
$html = file_get_html('testdata.html');

foreach($html->find('table') as $e){
foreach($html->find('td') as $f){
    echo $f->innertext . '<br>';
    }
    }

如何将我的代码更改为仅抓取和输出这些元素: "WAITLIST, 91630, ACCY 2001, 10, Intro Financial Accounting, 3.00, Zou, Y, Duques 251, 9:35AM-10:50AM, 01/13/14-04/28/14"

【问题讨论】:

    标签: php html parsing dom html-table


    【解决方案1】:
    // Retrieve the DOM from a given URL
    $html = file_get_html('testdata.html');
    
    foreach($html->find('table') as $e){
        foreach($e->find('td') as $f){
            echo strip_tags($f->innertext) . '<br>';
        }
    }
    

    你已经很接近了……

    忘记了标签。看看 strip_tags 是否适合你。

    http://us3.php.net/strip_tags

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2012-01-17
      • 1970-01-01
      相关资源
      最近更新 更多