2012-09-20 16 views
6

Qual è la sintassi corretta per utilizzare xpath per ottenere il contenuto di tutte le div con una determinata classe? Mi sembra di avere le div, ma non so come ottenere il loro HHML interiore.php xpath ottiene il contenuto di div con la classe

 $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

Hai provato '$ div-> nodeValue' o' $ div-> textContent' – Musa

+0

sicuro ha fatto, senza fortuna – David

risposta

6

Non c'è HTML nella class = "page-display" div - in modo da non hai intenzione di ottenere qualcosa a tutti.

Intendi la classe get = "parbase cn_text"?

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

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

     echo "<br/>"; 
    } 
+0

wow, io sono stupido. Funziona, ma come mai il "corpo" di classe non funziona? – David

+0

intendi "corpo"? ("body [spazio]") – Robbie

+0

oh dang, lo spazio conta? questo è fastidioso. Quindi se avevi 4 div con classi 1. "body test" 2. "test body example" 3. "esempio test body" 4. "body" avresti bisogno di interrogare su "body", "body", "body" e "corpo"? – David

Problemi correlati