Tema: PHP vs XML
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/04/2005, 16:34
a3093
 
Fecha de Ingreso: agosto-2003
Ubicación: Islas Canarias - Gran Canaria -
Mensajes: 59
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola, creo que ya lo solucioné, aunque me imagino que por ahí habrá funciones con mayores prestaciones que las que he usado yo. Bueno, para los que en un futuro tenga el mismo problema que yo, con analizar despacio este código lo entenderán rápido:


Código:
    $file = "spanish.xml";        // fichero con el cuerpo en xml

    // Acción que hace cuando encuentra la primera etiqueta de un elemento.
    function start_element_handler($parser, $name, $attribs)
    {
       echo "Elemento Ini: ".$name."<BR>";
       echo "Atributos: <br>";
       while(list($key,$value)=each($attribs))
           echo "Key= ".$key." Value= ".$value."<br>";
    }



    // Acción para cuando encuentre el final de una etiqueta de un elemento.
    function end_element_handler($parser, $name)
    {    echo "Elemento Fin: ".$name."<BR>";
    }


    // Recuperar un dato.
    function character_data_handler($parser, $data)
    {
       echo "<BR>Dato: <B>".$data."</b><BR>";
    }


    $xml_parser = xml_parser_create('');

    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0);

    xml_set_element_handler($xml_parser, "start_element_handler", "end_element_handler");
    xml_set_character_data_handler($xml_parser, "character_data_handler");

    if(!file_exists($file))
       die("\n<p>\"$file\" does not exist.</p>\n</body>\n</html>");

    if(!($handle = fopen($file, "r")))
       die("<p>Cannot open \"$file\".</p>\n</body>\n</html>");

    while($contents = fread($handle, 4096))
       xml_parse($xml_parser, $contents, feof($handle));

    fclose($handle);

    xml_parser_free($xml_parser);