Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2019, 15:47
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: xpath no devuelve elementos

Cita:
Iniciado por dryant Ver Mensaje
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!
no te muestra por que lo estas viendo desde el navegador y el navegador esta interpretando la devolucion como HTML , ponle mirar "codigo FUENTE de la pagina" boton derecho sobre la pagna , y mira recien, el resultado
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9