2012-09-20 13 views
6

¿Cuál es la sintaxis correcta para usar xpath para obtener el contenido de todos los divs con una cierta clase? parece que estoy recibiendo los divs, pero no sé cómo obtener su innerHTML.php xpath obtener contenido de div con clase

 $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

Ha intentado '$ div-> nodeValue' o' $ div-> textContent' – Musa

+0

Seguro que lo hizo, sin suerte – David

Respuesta

6

No hay HTML en la clase = "page-display" divs - por lo que no vamos a conseguir nada en absoluto.

¿Se refiere a get class = "parbase cn_text"?

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

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

     echo "<br/>"; 
    } 
+0

wow, soy estúpida. Eso funciona, pero ¿cómo es que el "cuerpo" de la clase no funciona? – David

+0

quieres decir "cuerpo"? ("cuerpo [espacio]") – Robbie

+0

oh dang, los espacios cuentan? eso es molesto. Entonces, si tuviera 4 divs con clases 1. "prueba de cuerpo" 2. "ejemplo de cuerpo de prueba" 3. "ejemplo de cuerpo de prueba" 4. "cuerpo" necesitaría consultar en "cuerpo", "cuerpo", "cuerpo" , y el cuerpo"? – David

Cuestiones relacionadas