Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2019, 14:12
Avatar de dryant
dryant
 
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
xpath no devuelve elementos

Hola a todos. Estoy creando una web para una práctica de la universidad, en la cual saco información de varias webs para después integrarlas entre si.
El caso es que de una de las páginas que saco la información, tengo que sacar los resultados que hay en una estructura similar a esta:
Código PHP:
div class="main-content">
    <
div class="post">
        <
a href="http://miweb1/resultado1.php">
            <
img alt=""
                 
class="attachment-post-thumbnail size-post-thumbnail wp-post-image"
                 
sizes="(max-width: 150px) 100vw, 150px"
                 
src="http://miweb1/resultado1.jpg">
        </
a>
        <
div class="bottom-block">
            
Resultado 1
        
</div>
        <
div class="date-block">
            
10/02/2018
        
</div>
    </
div>
    <
div class="post">
        <
a href="http://miweb1/resultado2.php">
            <
img alt=""
                 
class="attachment-post-thumbnail size-post-thumbnail wp-post-image"
                 
sizes="(max-width: 150px) 100vw, 150px"
                 
src="http://miweb1/resultado2.jpg">
        </
a>
        <
div class="bottom-block">
            
Resultado 2
        
</div>
        <
div class="date-block">
            
13/02/2018
        
</div>
    </
div>
    <
div class="post">
        <
a href="http://miweb1/resultado3.php">
            <
img alt=""
                 
class="attachment-post-thumbnail size-post-thumbnail wp-post-image"
                 
sizes="(max-width: 150px) 100vw, 150px"
                 
src="http://miweb1/resultado3.jpg">
        </
a>
        <
div class="bottom-block">
            
Resultado 3
        
</div>
        <
div class="date-block">
            
12/02/2018
        
</div>
    </
div>
    <
div class="post">
        <
a href="http://miweb1/resultado4.php">
            <
img alt=""
                 
class="attachment-post-thumbnail size-post-thumbnail wp-post-image"
                 
sizes="(max-width: 150px) 100vw, 150px"
                 
src="http://miweb1/resultado4.jpg">
        </
a>
        <
div class="bottom-block">
            
Resultado 4
        
</div>
        <
div class="date-block">
            
15/02/2018
        
</div>
    </
div>
</
div
Intento sacar el resultado con XPATH con la siguiente función:
Código PHP:
<?php

function get_results_l1($keyword)
    {

        
$url "http://miweb1/?="$keyword);

        
$doc = new DOMDocument();

        
/*
         * Debido a que loadHTMLFile no admite algunas etiquetas de HTML5, generando un warning, eliminamos mensaje
         * de error en la siguiente linea con la @
         * */

        
@$doc->loadHTML(file_get_contents($url));

        
$div_results = new DOMXPath($doc);
        
        
$elements $div_results->query("//div[@class='post-resultado']");

        echo 
"<br>Vardump de elements es:<br>";
        
var_dump($elements);
        echo 
"<br><br>";
        
$l1_links = array();
        
$i 0;

        foreach (
$elements as $element) {
            echo 
"<br>$element actual $i es: <br>";
            
var_dump($element);
            echo 
"<br><br>";
            
$enlaces $element->getElementsByTagName("a");
            foreach (
$enlaces as $enlace) {
                
$l1_links[$i] = $enlace->getAttribute("href");
                echo 
$i."-".$l1_links[$i]."<br>";
                
$i++;
            }
        }
        echo 
"<br>Fin foreach<br>";

        return 
$l1_links;
    }
Y el resultao que obtengo es el siguiente:
Código HTML:
Vardump de elements es:
object(DOMNodeList)#15 (1) { ["length"]=> int(0) } 


Inicio el foreach


Fin foreach
Si no estoy equivocado con la query //div[@class='post-resultado'] deberia obtener 4 nodos, uno por cada resultado que hay en la web.
Sin embargo parece que no devuelve nada...
He comprobado la expresion en un XPATH TESTER ONLINE y si me devuelve los 4 elementos... pero sin embargo en mi web no devuelve nada...
Alguien podria orientarme un poco porque no me está devolviendo nada?
Saludos y gracias a todos!
__________________
Tecnología y tutoriales