2012-09-20 61 views
6

什麼是正確的語法使用xpath獲取所有div的內容與某個類?我似乎正在獲得divs,但我不知道如何獲得他們的innerHTML。php xpath獲取div的內容與類

 $url = "http://www.vanityfair.com/politics/2012/10/michael-lewis-profile-barack-obama"; 

    $ctx  = stream_context_create(array('http'=> array('timeout' => 10))); 

    libxml_use_internal_errors(TRUE); 
    $num = 0; 

    if($html = @file_get_contents($url,false,$ctx)){ 

     $doc = DOMDocument::loadHTML($html); 
     $xpath = new DOMXPath($doc); 

     foreach($xpath->query('//div[@class="page-display"]') as $div){ 
      $num++; 
      echo "$num. "; 

      //???? 

      echo "<br/>"; 
     } 

     echo "<br/>FINISHED"; 

    }else{ 
     echo "FAIL"; 
    } 
+0

你試過'$ div-> nodeValue'或'$ div-> textContent' – Musa

+0

確實這樣做了,沒有運氣 – David

回答

6

class =「page-display」divs中沒有HTML,所以你根本就不會得到任何東西。

你的意思是get class =「parbase cn_text」?

foreach($xpath->query('//div[@class="parbase cn_text"]') as $div){ 
     $num++; 
     echo "$num. "; 

     //???? 
     echo $div->textContent; 

     echo "<br/>"; 
    } 
+0

哇,我是個白癡。這很有效,但是班級「身體」怎麼不起作用? – David

+0

你的意思是「身體」? (「身體[空間]」) – Robbie

+0

oh dang,空格數?這很煩人。所以,如果你有4個div與類1.「身體測試」2.「測試身體示例」3.「示例測試身體」4.「身體」你需要查詢「身體」,「身體」,「身體」 , 與身體」? – David