SAX es una API estándar para usar XML en Java y otros lenguajes que permite realizar acciones sobre datos XML mediante un recorrido secuencial de sus elementos. Funciona basado en eventos llamando funciones cuando reconoce elementos en el documento XML. Se utiliza principalmente para cambios en documentos XML, mientras que DOM es más adecuado para agregar elementos.
2. ¿Qué es SAX?
Originalmente una API únicamente para
el lenguaje de programación
que después se convirtió en la API
estándar de facto para usar XML en JAVA.
Existen versiones de SAX no sólo para
JAVA, sino también para otros lenguajes
de programación (como Python).
3. ¿Cuándo utilizarlo?
Cuando queremos realizar acciones con
nuestros datos escritos en XML.
Se tratan simplemente de unas normas que
indican a los desarrolladores la manera de
acceder a los documentos. Estas normas
incluyen una jerarquía de objetos que tienen
unos métodos y atributos con los que
tendremos que trabajar y que nos
simplificarán las tareas relativas al recorrido
y acceso a las partes del documento.
4. ¿Cómo funciona?
SAX se utiliza para hacer un recorrido secuencial
de los elementos del documento XLM.
Cuando utilizamos SAX como gestor de
documentos XML con PHP lo que hacemos es usar
el documento XML como un flujo de datos.
Si buscamos realizar distintos cambios en un
documento XML se recomienda utilizar SAX.
Sin embargo si quisiéramos agregar elementos al
documento XML es mas conveniente utilizar una API como
DOM.
5. SAX está basado en eventos, a diferencia de DOM
que está basado en programación orientada a objetos.
Esto quiere decir que llama a funciones preconstruidas
cuando reconoce un evento desencadenante en el
documento XML que analiza.
6. Parsing…¿Qué es esto?
Un analizador sintáctico (o parser) es una de
las partes de un compilador que transforma su
entrada en un árbol de derivación.
El análisis sintáctico convierte el texto de
entrada en otras estructuras (comúnmente
árboles), que son más útiles para el posterior
análisis y capturan la jerarquía implícita de la
entrada.
7.
8.
9. Cómo utilizar SAX
Determinar el tipo de eventos que quieres gestionar.
Escribir funciones gestoras para cada elemento:
gestor de datos de carácter.
gestor de elemento de inicio .
gestor de elemento final.
Crear un analizador ,y luego llamarlo.
Liberar la memoria usada por el analizador.
10. SAX
Xml_parser_create([encoding])
Crea una nueva instancia del
analizador.
Xml_parser_free(parser)
Libera la memoria
asociada al analizador
Xml_parse(parser,data,[final])
Inicializa el analizador, se envía como parámetros
un analizador ya creado, datos y un elemento de
finalización.
Xml_get_error_code(parser)
Indica si no puede llevar a
cabo la creación que le
indicamos.
11. SAX
xml_set_default_handler(parser,handler)
Configura el gestor por defect si está especificado.
Toma como parámetros el analizador, y un string con
los datos manejados.
Xml_error_string(errorcode)
determina un código de error,
devuelve un string con una
descripción del error indicado
Xml_set_element_handler(parser,start_element_handler,end_element_handler)
Configura dos handlers. El primero un gestor de inicio de elemento, que tiene acceso al
nombre del elemento y un array asociativo de sus elementos. El segundo es un gestor de
final de elemento, en el momento en que el elemento esta completamente analizado.
Xml_set_carácter_data_ha
ndler(parser,cd_handler)
Configura la función gestora
para llamar a cualquier dato
carácter que sea encontrado.
Toma un string que contiene
los datos como argumento.