Foros del Web » Programando para Internet » PHP »

Que es mas rapido para procesar un fichero XML?

Estas en el tema de Que es mas rapido para procesar un fichero XML? en el foro de PHP en Foros del Web. Buenas, Hasta ahora para procesar grandes ficheros XML primero los traducia a un array y luego los iteraba. Para pasar un fichero XML a un ...
  #1 (permalink)  
Antiguo 16/04/2010, 11:30
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Que es mas rapido para procesar un fichero XML?

Buenas,

Hasta ahora para procesar grandes ficheros XML primero los traducia a un array y luego los iteraba.

Para pasar un fichero XML a un array utilizo la siguiente clase

Código PHP:
Ver original
  1. <?php
  2. class xml {
  3.     var $matriz = array();
  4.     var $resultado;
  5.     var $informacion;
  6.  
  7.     function xml($contenido) {
  8.  
  9.             $this->resultado = xml_parser_create ();
  10.             xml_set_object($this->resultado,$this);
  11.             xml_set_element_handler($this->resultado, "abrir", "cerrar");
  12.            
  13.             xml_set_character_data_handler($this->resultado, "info");
  14.        
  15.             $this->informacion = xml_parse($this->resultado,$contenido);
  16.                          
  17.             xml_parser_free($this->resultado);
  18.            
  19.             return $this->matriz;
  20.     }
  21.     function abrir($parser, $nombre, $atributos) {
  22.         $etiqueta = array("nombre"=>$nombre,"atributos"=>$atributos);
  23.         array_push($this->matriz,$etiqueta);
  24.     }
  25.  
  26.     function info($parser, $etiqueta_info) {
  27.         if(trim($etiqueta_info)) {
  28.             if(isset($this->matriz[count($this->matriz)-1]['info'])) {
  29.                $this->matriz[count($this->matriz)-1]['info'] .= $etiqueta_info;
  30.             }
  31.             else {
  32.                $this->matriz[count($this->matriz)-1]['info'] = $etiqueta_info;
  33.             }
  34.         }
  35.     }
  36.     function cerrar($parser, $nombre) {
  37.        $this->matriz[count($this->matriz)-2]['hijo'][] = $this->matriz[count($this->matriz)-1];
  38.         array_pop($this->matriz);
  39.     }
  40. }
  41. ?>

Y la llamada es así

Código PHP:
Ver original
  1. $xml_contenido = @file_get_contents($url,'r');
  2. $xml = new xml($xml_contenido);
  3. $arreglo = ($xml->matriz);

Luego voy iterando con bucles anidados buscando la información que quiero.

Me pregunto si alguien que haya tenido experiencia con este método se ha dado cuenta si es más rápido o no que utilizar alguna clase como SimpleXML o similares.

Vuestra recomendación?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 16/04/2010, 11:34
 
Fecha de Ingreso: enero-2010
Ubicación: Monterrey
Mensajes: 17
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Que es mas rapido para procesar un fichero XML?

Para mi SimpleXML trabaja super bien, además te da la posibilidad de hacer consultas con XPath.



Saludos

Etiquetas: fichero, mas, procesar, rapido, 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 21:20.