使用dom解析html页面以进行分页

时间:2012-10-18 21:09:27

标签: php dom simple-html-dom

我想解析这个html页面,进行分页:

<div class="clear"></div>
<div id="ctl00_MainContent_PaperList_PageNavigator" class="page-navigator">
<a id="ctl00_MainContent_PaperList_Prev" title="Go to Previous Page" class="nextprev"  
   href="/Search?query=text%20summarization&amp;s=0&amp;start=1&amp;end=10">Previous<a>
<a href="s&#61;0&#38;start&#61;1&#38;end&#61;10">1</a> <span class="current">2</span>
<a id="ctl00_MainContent_PaperList_Next" title="Go to Next Page" class="nextprev" 
href="/ Search?query=text%20summarization&amp;s=0&amp;start=21&amp;end=30">Next</a>
<div>

对于上一页,我需要解析上一页并转到下一页。这是代码:

$html = file_get_html($url) or die ('');
if($link = $html->find('div[class=page-navigator] ')) {  
    $previous = $link->first_child()->href; 
    $next     = $link->last_child()->href;
    $html->clear();  
    unset($html);  
    // other process
}

我仍然收到错误Fatal error: Call to a member function first_child() on a non-object in D:\AppServ\www\coba\page\page1.php on line 18

出了什么问题。谢谢你:))

2 个答案:

答案 0 :(得分:0)

xpath中的错字:

 if($link = $html->find("div[class='page-navigator'] ")) {  
                        ^--        ^--            ^--^--

注意报价的变化。您收到错误而不是domnodelist,错误对象没有first_child()方法。

答案 1 :(得分:0)

您也可以这样做:

if($link = $html->find('div.page-navigator')) {