Foros del Web » Programando para Internet » PHP »

Incluir XML en resultados de mi pagina

Estas en el tema de Incluir XML en resultados de mi pagina en el foro de PHP en Foros del Web. Hola a todos Tengo una fuente XML cuyo contenido deseo incorporar al diseño de mi site. El fichero XML seria algo asi: Código PHP: <?xml version ...
  #1 (permalink)  
Antiguo 31/01/2006, 18:08
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Incluir XML en resultados de mi pagina

Hola a todos

Tengo una fuente XML cuyo contenido deseo incorporar al diseño de mi site. El fichero XML seria algo asi:
Código PHP:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<RESULTADOSBUSQUEDA CLAVES="#palabras_clave#"
NUMRESULTADOS="#numero_resultados_parcial#"
TOTALRESULTADOS="#numero_resultados_total#" TIEMPORESPUESTA="0">
<PRODUCTO POSICION="#contador_resultados#">
<TITULO><![CDATA[#nombre_del_producto#]]></TITULO>
<LINK><![CDATA[#url_click_del_producto#]]></LINK>
<PRECIO><![CDATA[#precio_del_producto#]]></PRECIO>
<DESCRIPCION><![CDATA[#resumen_del_producto#]]></DESCRIPCION>
<IMAGEN><![CDATA[#imagen_del_producto_50px#]]></IMAGEN>
<MARCA><![CDATA[#marca_del_producto#]]></MARCA>
<MODELO><![CDATA[#modelo_del_producto#]]></MODELO>
<CATEGORIA><![CDATA[#categoria_del_producto#]]></CATEGORIA>
</PRODUCTO>
</RESULTADOSBUSQUEDA>
He encontrado una clase (MagpieRSS: http://magpierss.sourceforge.net), que ya estaba aplicando a otro sitio y funciona perfectamente, pero con este fichero no hay manera de implementarlo.

Agradeceria alguna ayudita...

Gracias a todos
  #2 (permalink)  
Antiguo 31/01/2006, 21:15
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 5 meses
Puntos: 1
Si lo que deseas es usar el contenido de ese xml y usar algunas partes de el me imagino que son las que van dentro de las etiquetas, lo que necesitarias es usar funciones de cadena y extraer lo que necesites, dinos que necesitas sacar y que deseas hacer, por ejemplo almacenarlo en un array para trabajar con el?
  #3 (permalink)  
Antiguo 01/02/2006, 01:45
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola dopon

Gracias por la respuesta, si efectivamente necesitaria almacenarlo en un array para luego mostrarlo por pantalla. Concretamente titulo, link, descripcion y categoria.

Gracias de nuevo...

Saludos
  #4 (permalink)  
Antiguo 01/02/2006, 06:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
He encontrado una clase (MagpieRSS: http://magpierss.sourceforge.net), que ya estaba aplicando a otro sitio y funciona perfectamente, pero con este fichero no hay manera de implementarlo.
Pero .. la classe que mencionas lee un formato XML muy concreto que es RSS (un derivado con una estructura bien definida) .. Tu archivo XML que ahora quieres "parsear" tiene otro formato (no standar tipo RSS) así que ese tipo de classes que "parsean" un RSS no te serviran .. deberías usar funciones genéricas (o classes) que lean un XML en general (de cualquier tipo) donde tu le indiques tus "nodos" y demás historias de XML.

Para tal fin te podría servir:
http://phpclasses.php-start.de/browse/package/1598.html
(en www.phpclasses.org en general tienes más sobre tratamiento de XML)

Un saludo,
  #5 (permalink)  
Antiguo 01/02/2006, 06:51
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola Cluster

Gracias por tu respuesta, probare esa clase a ver que tal...

Gracias de nuevo...
  #6 (permalink)  
Antiguo 01/02/2006, 13:46
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola Cluster

Acabo de bajarme la clase y estoy analizandola, pero la verdad es que no tengo ni idea de como manejarla. ¿Podrias echarme una mano por favor?

Mil gracias desde ya...
  #7 (permalink)  
Antiguo 02/02/2006, 06:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No he usado dicha classe (ni XML en general, sólo usé "google") .. tienes otras classes sobre XML en el mismo sitio (www.phpclasses.org) .. tal vez otra te sea más sencillo de entender o hacer funcionar, pruebalas.

Un saludo,
  #8 (permalink)  
Antiguo 20/02/2006, 10:02
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola a todos

Sigo intentando parsear un fichero xml y mostrarlo en mi site, pero aun no lo he conseguido, he probado varias clases pero si resultado...

Alguien puede echarme una mano

Gracias
  #9 (permalink)  
Antiguo 28/02/2006, 17:02
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Hola

Tengo esta clase, para guardar los resultados de un fichero xml en un array:
Código PHP:
class xml2Array {
   
   var 
$arrOutput = array();
   var 
$resParser;
   var 
$strXmlData;
   
   function 
parse($strInputXML) {
   
           
$this->resParser xml_parser_create ();
           
xml_set_object($this->resParser,$this);
           
xml_set_element_handler($this->resParser"tagOpen""tagClosed");
           
           
xml_set_character_data_handler($this->resParser"tagData");
       
           
$this->strXmlData xml_parse($this->resParser,$strInputXML );
           if(!
$this->strXmlData) {
               die(
sprintf("XML error: %s at line %d",
           
xml_error_string(xml_get_error_code($this->resParser)),
           
xml_get_current_line_number($this->resParser)));
           }
                           
           
xml_parser_free($this->resParser);
           
           return 
$this->arrOutput;
   }
   function 
tagOpen($parser$name$attrs) {
       
$tag=array("titulo"=>$name,"link"=>$attrs); 
       
array_push($this->arrOutput,$tag);
   }
   
   function 
tagData($parser$tagData) {
       if(
trim($tagData)) {
           if(isset(
$this->arrOutput[count($this->arrOutput)-1]['tagData'])) {
               
$this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $tagData;
           } 
           else {
               
$this->arrOutput[count($this->arrOutput)-1]['tagData'] = $tagData;
           }
       }
   }
   
   function 
tagClosed($parser$name) {
       
$this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1];
       
array_pop($this->arrOutput);
   }

El problema es que no tengo ni idea de como mostrar los resultados, alguien me puede echar una mano

Gracias
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:52.