
09/12/2003, 11:12
|
 | | | Fecha de Ingreso: noviembre-2002 Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 22 años, 4 meses Puntos: 1 | |
Parser XML (teoría || Metodología) A ver, lo que quiero es en parte que me confirmen la parte teorica de crear un parser para XML, lei lo de zonaphp pero no e podido entender del todo (creo) como funcioa el parser, además que el codigo que ahi muestran para parsear el RSS de zonaphp parace no funcionar (Error en linea 1: elemento vacio (o algo asi))
Teoria
1.- Abro el archivo y lo leo en memoria
Cierra la conexion con el archivo
2.- Creo ciertas variables auxiliares para guardar los datos recogidos por el parser
Según el ejemplo de zonaphp
$contenido="";
$tag_actual="";
3.- Creo variables flag para ir leyendo el archivo
Estas variables serian una por cada tag del archivo xml.
En este caso (zonaphp.xml)
$en_channel,$en_item, $title , $link, $descripcion todos a false;
4.- Inicio el parser y creo las funciones para leer el archivo
$parser=xml_parser_create();
xml_set_element_handler($parser,"tag_abre","tag_ci erra");
xml_set_character_data_handler($parser,"tag_conten ido");
5.- Creo las funciones
- tag_abre: que leeria el archivo y cada ves que encuentre la apertura de un tag, dependiendo de cual sera pondria a true cierta variable flag y guardaria el tag_actual
- tag_contenido: Guarda el contenido de cierto tag
- tag_cierra: AL encontrar el cierre de un tag guarda el contenido correspondiente en la variable correspondiente
6.- se muetran los errores de haberlos
7.- se libera memoria
8.- se imprime el resultado
Bueno eso es lo que entendi, ahora si está bien esa es la pregunta que les hago, por que si es asi la metodologia no es tan dificial y me estoy complicando nada más.
SI es asi por favor si me la pueden explicar mejor o si no poder decirme cual es la metodologia correcta
Y por ultimo que clase para esta tare me recomendarian....
Saludos
__________________ DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon |