Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/09/2013, 15:21
trolo13
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 9 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