Foros del Web » Programando para Internet » PHP »

Hacer un "select" a un *.xml

Estas en el tema de Hacer un "select" a un *.xml en el foro de PHP en Foros del Web. Llevo ya un rato investigando sobre este tema y no me aclaro... He conseguido mostrar todos los registros de un *.xml con la funcion simple_xml. ...
  #1 (permalink)  
Antiguo 20/05/2011, 11:03
 
Fecha de Ingreso: enero-2002
Mensajes: 73
Antigüedad: 22 años, 2 meses
Puntos: 0
Hacer un "select" a un *.xml

Llevo ya un rato investigando sobre este tema y no me aclaro...

He conseguido mostrar todos los registros de un *.xml con la funcion simple_xml.
Pero lo que quiero hacer es hacer una consulta estilo select * from productor where.... supongo que me entienden.

¿cual es la mejor manera de hacer esto?
¿seria mejor importar el *.xml a una tabla en mysql?
__________________
Información Turística sobre Merida --> MeridaEterna.com
  #2 (permalink)  
Antiguo 20/05/2011, 11:08
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 8 meses
Puntos: 41
Respuesta: Hacer un "select" a un *.xml

Puedes guardar todos los datos en una lista e ir buscando los datos a segun como lo desees, creo que eso puedes aser
  #3 (permalink)  
Antiguo 20/05/2011, 11:14
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Hacer un "select" a un *.xml

no conozco simple_xml, pero debe tener una funcion que haga eso, que seleccione todos los campos con la etiqueta tal, digo, tendria que.
  #4 (permalink)  
Antiguo 20/05/2011, 11:14
 
Fecha de Ingreso: enero-2002
Mensajes: 73
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Hacer un "select" a un *.xml

Vale, os concreto un poco más:

Es un xml con un listado de 3500 productos:

<productos>
<producto>
<nombre>producto1</producto>
<imageurl>http://www.com</imageurl>
<descripcion>descripcion de producto</descripcion>
</producto>
</productos>

y lo que quiero es hacer consultas como si se tratara de una tabla de mysql
__________________
Información Turística sobre Merida --> MeridaEterna.com
  #5 (permalink)  
Antiguo 20/05/2011, 11:16
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 12 años, 10 meses
Puntos: 344
Respuesta: Hacer un "select" a un *.xml

Puedes utilizar XQuery para realizar consultas muy parecidas a las SQL o XPath que ya no es tan parecida pero podría servirte para lo que necesitas.

Prueba a mirar XQuery Lite para PHP.
  #6 (permalink)  
Antiguo 20/05/2011, 11:23
 
Fecha de Ingreso: enero-2002
Mensajes: 73
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Hacer un "select" a un *.xml

Gracias alexg88 XQuery me parece mejor opcion que xPath, al menos para mi
__________________
Información Turística sobre Merida --> MeridaEterna.com
  #7 (permalink)  
Antiguo 20/05/2011, 22:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Hacer un "select" a un *.xml

Yo te recomiendo el uso de XPATH no es complicado. Ejemplo,
Código PHP:
Ver original
  1. <?php
  2. $str = <<<XML
  3. <foo>
  4.     <bar>
  5.         <candy>snickers</candy>
  6.         <fruits>apple</fruits>
  7.     </bar>
  8.     <bar>
  9.         <candy>twix</candy>
  10.         <fruits>pear</fruits>
  11.     </bar>
  12.     <bar>
  13.         <candy>kitkat</candy>
  14.         <fruits>grape</fruits>
  15.     </bar>
  16. </foo>
  17. XML;
  18.  
  19. $xml = new SimpleXMLElement($str);
  20. $candy = $xml->xpath('//candy');
  21. $fruits = $xml->xpath('//fruits');
  22. foreach($candy as $v){
  23.     echo 'candy = ' . $v . '<br />';
  24. }
  25. foreach($fruits as $v){
  26.     echo 'fruits = ' . $v . '<br />';
  27. }
  28.  
  29. /**
  30.  * Leer todo junto
  31.  */
  32. $bar = $xml->xpath('//bar');
  33. foreach($bar as $v){
  34.     echo 'candy = ' . $v->candy . ' vs fruits = ' . $v->fruits . '<br />';
  35. }
Vez que sencillo es trabajar con simpleXML.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 20/05/2011, 23:00
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Hacer un "select" a un *.xml

como comer sanamente.

Ya decia yo que tenia que tener alguna forma facil de hacerlo, por eso el nombre.
  #9 (permalink)  
Antiguo 21/05/2011, 02:08
 
Fecha de Ingreso: enero-2002
Mensajes: 73
Antigüedad: 22 años, 2 meses
Puntos: 0
Respuesta: Hacer un "select" a un *.xml

toda la razon abimaelrc, según he estado leyendo Xpath es la mejor manera de trabajar con archivos xml. De hecho ya lo estoy haciendo.

Saludos y gracias
__________________
Información Turística sobre Merida --> MeridaEterna.com

Etiquetas: select, xml
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 22:33.