El lenguaje XML es una de las opciones preferidas en la actualidad para intercambiar información entre aplicaciones, por lo que disponer de una herramientsa capaz de extraer la información de un fichero en éste formato es muy importante.
XML::Parser
Perl dispone del modulo XML::Parser, el cual actúa como un interface compatible con expat, el parser XML de James Clark, y permite encontrar o filtrar aquellas partes de un documento XML en las que estamos interesados.
El modulo XML::Parser viene con la distribución estándar de ActiveState, y se trata de un modulo orientado a eventos, lo que significa que analiza el fichero XML y a medida que va encontrando tags de comienzo o final, o cualquier información entre tags se va a llamar a la función manejadora que hayamos establecido.
Para saber como podemos usarlos, debemos conocer los eventos generados por el XML::Parser y sus parámetros.
EventosVeamos los eventos más comunes y sus parámetros junto con una breve descripción. El primer parámetro siempre es una instancia de Expat, un módulo de uso interno utilizado para procesar el documento, y que a menos que tengamos buenads razones para manipularlo, es mejor ignorarlo.
Handler (parámetros) |
Cuándo sucede |
Ejemplo |
Init (Expat) |
Al comenzar el procesado |
|
Final (Expat) |
Al terminar el procesado |
|
Start (Expat, Element [, Attr, Val [,...]]) |
Cuando se detecta el comienzo de un tag XML |
<TAG attr1="val1" attr2="val2"> |
End (Expat, Element) |
Cuando se detecta el final de un tag XML |
</TAG> |
Char (Expat, String) |
Texto sin marcas |
|
Comment (Expat, Data) |
Para los comentarios |
<!-- comentario --> |
Default (Expat, String) |
Cuando no hay un handler específico se llama al de por defecto. |
Los tags del estilo <foo/>, lanzan tanto el evento Start como el End.
Manejo de los eventosDisparar un evento quiere decir que una función en nuestro programa va a ser invocada. Para ello, hay que comunicar al módulo XML::Parser cuáles son las funciones manejadoras de cada clase de eventos que estamos interesados en utilizar.
Usuarios que han visto este tema también han visto...
- Variables locales en Perl
- Objetos en PERL 6
- Redirección de acuerdo a la resolución de la pantalla en Perl
- Creación y control de procesos en Perl
- PostgreSQL con perl en el WEB

Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.