Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Obtener datos HTML con XPath y llevarlos a un array

Estas en el tema de Obtener datos HTML con XPath y llevarlos a un array en el foro de PHP en Foros del Web. Hola, Me estoy peleando con la extensión DOM para sacar datos de otra web y utilizarlos. En concreto, trato de sacar el valor de diferentes ...
  #1 (permalink)  
Antiguo 20/09/2013, 15:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Obtener datos HTML con XPath y llevarlos a un array

Hola,

Me estoy peleando con la extensión DOM para sacar datos de otra web y utilizarlos.
En concreto, trato de sacar el valor de diferentes monedas de oro de esta web:
http://www.orodirect.es/productos/3/monedas_de_metales_preciosos.html

Lo he conseguido básicamente con la clase DOMXPath, el código es este:
Código:
<?php
$link = 'http://www.orodirect.es/productos/3/monedas_de_metales_preciosos.html';

$dom = new DOMDocument;
$dom->loadHTMLFile($link);
$i = 0;
$html = '';
$domxpath = new DOMXPath($dom);
$newDom = new DOMDocument;
$newDom->formatOutput = true;
$filtered = $domxpath->query('//div[@class="title"] | //div[@class="price"] ');
    
while( $myItem = $filtered->item($i++) ){
        $node = $newDom->importNode( $myItem, true );    
        $newDom->appendChild($node);                  
 		   }
$html = $newDom->saveHTML();
echo $html;
?>
Con este código obtengo el siguiente resultado:

Maple Leaf Platino 1 oz
1.262 €
Filarmónica de Viena Oro 1 oz
1.060 €
Kruger Rand 1 oz
1.040 €
Australian Nugget 1 oz
1.060 €

El problema que tengo es que necesito meter esos valores en una base de datos con dos campos: Moneda y Precio de moneda.
Como el formato de salida es HTML no sé cómo coger sólo el texto, ni tampoco cómo asociar que Moneda1 va con PrecioMoneda1, etc.
He probado con diferentes opciones en la query XPath y esta solución que pongo es la que más se parece a lo que quiero, pero tampoco me satisface.
¿Alguna idea o sugerencia de cómo hacerlo?
Gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 21/09/2013, 05:58
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: Obtener datos HTML con XPath y llevarlos a un array

Prueba a guardarlo con saveXML que te devolverá un xml que una vez insertado en un array te será mas fácil de trabajar
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #3 (permalink)  
Antiguo 25/09/2013, 09:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Obtener datos HTML con XPath y llevarlos a un array

Me autorespondo por si le es útil a alguien.
Esto se hace con textContent o con nodeValue.
En mi ejemplo anterior sería:

$variable = $node->textContent;

Etiquetas: domdocument
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:32.