Aurora Arce Dueñas
1 1 3 0 0 0 5 1
¿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).
¿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.
¿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.
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.
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.
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.
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.
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.
Referencias
 http://www.desarrolloweb.com/articulos/480.php
 https://www.youtube.com/watch?v=bVX_3Kuvo_M
 http://php.net/manual/es/intro.xml.php
 http://docstore.mik.ua/orelly/webprog/pcook/ch12_05.htm
 http://www.saxproject.org/
 https://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico
 http://www.educasitio.com/curso-php-mysql-41-dom-sax-
simplexml
SAX (con PHP)

SAX (con PHP)

  • 1.
    Aurora Arce Dueñas 11 3 0 0 0 5 1
  • 2.
    ¿Qué es SAX? Originalmenteuna 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 queremosrealizar 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 seutiliza 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á basadoen 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.
  • 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 nuevainstancia 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 gestorpor 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.
  • 12.
    Referencias  http://www.desarrolloweb.com/articulos/480.php  https://www.youtube.com/watch?v=bVX_3Kuvo_M http://php.net/manual/es/intro.xml.php  http://docstore.mik.ua/orelly/webprog/pcook/ch12_05.htm  http://www.saxproject.org/  https://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico  http://www.educasitio.com/curso-php-mysql-41-dom-sax- simplexml

Notas del editor

  • #3 Interfaces para procesado desde aplicaciones externas.
  • #11 En el ejemplo se envía como parámetro un codificador iso para poder imprimir letras ‘ñ’, es opcional. El elemento final del analizador es opcional