Foros del Web » Programando para Internet » PHP »

Guardar xml en array

Estas en el tema de Guardar xml en array en el foro de PHP en Foros del Web. Hola a todos! Tengo un archivo xml y quiero guardarlo en un array.He encontrado el código que muestro a continuación que hace eso,pero los datos ...
  #1 (permalink)  
Antiguo 14/01/2008, 04:41
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 14 años, 8 meses
Puntos: 0
Guardar xml en array

Hola a todos!

Tengo un archivo xml y quiero guardarlo en un array.He encontrado el código que muestro a continuación que hace eso,pero los datos no los almacena,solo la etiqueta de comienzo y los atributos.¿Cómo podría hacer para almacenar tambien los datos?

Código PHP:
$file "config.xml";


$depth 0;
$tree = array();
$tree['name'] = "root";
$stack[count($stack)] = &$tree;

function 
startElement($parser$name$attrs) {
   global 
$depth;
   global 
$stack;
   global 
$tree;

   
$element = array();
   
$element['name'] = $name;
   foreach (
$attrs as $key => $value) {
        
//echo $key."=".$value;
        
$element[$key]=$value;
    }

   
$last = &$stack[count($stack)-1];
   
$last[count($last)-1] = &$element;
   
$stack[count($stack)] = &$element;

   
$depth++;
}

function 
endElement($parser$name) {
   global 
$depth;
   global 
$stack;

   
array_pop($stack);
   
$depth--;
}
//Esta sería la función que almacenaría los datos 
function chracterData($parser,$data){

//Código que quiero implementar

}

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startElement""endElement");
//Funcion que llama a CharacterData
xml_set_character_data_handler($xml_parser"characterData");
if (!(
$fp fopen($file"r"))) {
   die(
"could not open XML input");
}

while (
$data fread($fp4096)) {
   if (!
xml_parse($xml_parser$datafeof($fp))) {
       die(
sprintf("XML error: %s at line %d",
                   
xml_error_string(xml_get_error_code($xml_parser)),
                   
xml_get_current_line_number($xml_parser)));
   }
}
xml_parser_free($xml_parser);
$tree $stack[0][0];
echo 
"<pre>";
print_r($tree);
echo 
"</pre>"
  #2 (permalink)  
Antiguo 15/01/2008, 08:50
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 14 años, 8 meses
Puntos: 0
Re: Guardar xml en array

Alguna idea??
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 15:01.