SlideShare una empresa de Scribd logo
1 de 13
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)

Más contenido relacionado

La actualidad más candente (18)

Chuleta de DTD
Chuleta de DTDChuleta de DTD
Chuleta de DTD
 
JSON
JSONJSON
JSON
 
Xml
XmlXml
Xml
 
Json short manual
Json short manualJson short manual
Json short manual
 
Tutorial XML
Tutorial XMLTutorial XML
Tutorial XML
 
Json
JsonJson
Json
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
Json
JsonJson
Json
 
Tutorial de DTD en PDF
Tutorial de DTD en PDFTutorial de DTD en PDF
Tutorial de DTD en PDF
 
Xml
XmlXml
Xml
 
Json
JsonJson
Json
 
Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
 
XML y DTDs
XML y DTDsXML y DTDs
XML y DTDs
 
OLE BD
OLE BDOLE BD
OLE BD
 
Xml
XmlXml
Xml
 
Xml
XmlXml
Xml
 
Colima2000
Colima2000Colima2000
Colima2000
 

Destacado

Business plan Metavector - B Mariman
Business plan Metavector - B MarimanBusiness plan Metavector - B Mariman
Business plan Metavector - B Marimanmfrancis
 
Mu App-ID Test Methodology
Mu App-ID Test MethodologyMu App-ID Test Methodology
Mu App-ID Test Methodologyaquaphlex
 
El Foda-Sit como palanca competitiva
El Foda-Sit como palanca competitivaEl Foda-Sit como palanca competitiva
El Foda-Sit como palanca competitivaStrategosInowa
 
Gemalto ключевой компонент безопасной инфраструктуры microsoft 05122014
Gemalto  ключевой компонент безопасной инфраструктуры microsoft 05122014Gemalto  ключевой компонент безопасной инфраструктуры microsoft 05122014
Gemalto ключевой компонент безопасной инфраструктуры microsoft 05122014ISSP Russia
 
Proposta Projecte Ala Artificial
Proposta Projecte Ala ArtificialProposta Projecte Ala Artificial
Proposta Projecte Ala ArtificialDaniel Turienzo
 
Sperry Van Ness #CRE National Sales Meeting 4-1-13
Sperry Van Ness #CRE National Sales Meeting 4-1-13Sperry Van Ness #CRE National Sales Meeting 4-1-13
Sperry Van Ness #CRE National Sales Meeting 4-1-13SVN International Corp.
 
Presentación circuito excelencia para invitados - Rioja Alta
Presentación circuito excelencia para invitados - Rioja AltaPresentación circuito excelencia para invitados - Rioja Alta
Presentación circuito excelencia para invitados - Rioja Altanietogagotelefonicanet
 
How to Design Email Landing Pages That Convert
How to Design Email Landing Pages That Convert How to Design Email Landing Pages That Convert
How to Design Email Landing Pages That Convert Litmus
 
Sintessis del dmt (2)
Sintessis del dmt (2)Sintessis del dmt (2)
Sintessis del dmt (2)jana888
 
Corporate Connections, Internet leased lines, VPN Services in Lucknow
Corporate Connections, Internet leased lines, VPN Services in LucknowCorporate Connections, Internet leased lines, VPN Services in Lucknow
Corporate Connections, Internet leased lines, VPN Services in LucknowRetainers Incorporation
 
10 Anni di SAP Business One...uno sguardo al futuro !
 10 Anni di SAP Business One...uno sguardo al futuro ! 10 Anni di SAP Business One...uno sguardo al futuro !
10 Anni di SAP Business One...uno sguardo al futuro !Massimo Sala
 
Facturas de proveedores: 12 pasos para quitarse el hábito del papel
Facturas de proveedores: 12 pasos para quitarse el hábito del papelFacturas de proveedores: 12 pasos para quitarse el hábito del papel
Facturas de proveedores: 12 pasos para quitarse el hábito del papelEsker Ibérica
 
European Private Equity & Venture Capital Association
European Private Equity & Venture Capital AssociationEuropean Private Equity & Venture Capital Association
European Private Equity & Venture Capital AssociationLucas Wyrsch
 
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...litri2101
 

Destacado (20)

Business plan Metavector - B Mariman
Business plan Metavector - B MarimanBusiness plan Metavector - B Mariman
Business plan Metavector - B Mariman
 
Mu App-ID Test Methodology
Mu App-ID Test MethodologyMu App-ID Test Methodology
Mu App-ID Test Methodology
 
El Foda-Sit como palanca competitiva
El Foda-Sit como palanca competitivaEl Foda-Sit como palanca competitiva
El Foda-Sit como palanca competitiva
 
Gemalto ключевой компонент безопасной инфраструктуры microsoft 05122014
Gemalto  ключевой компонент безопасной инфраструктуры microsoft 05122014Gemalto  ключевой компонент безопасной инфраструктуры microsoft 05122014
Gemalto ключевой компонент безопасной инфраструктуры microsoft 05122014
 
30 Simple Tips for Email Marketing
30 Simple Tips for Email Marketing30 Simple Tips for Email Marketing
30 Simple Tips for Email Marketing
 
Perfil e Innovacion Sensorial de los Ingredientes funcionales
Perfil e Innovacion Sensorial de los Ingredientes funcionales Perfil e Innovacion Sensorial de los Ingredientes funcionales
Perfil e Innovacion Sensorial de los Ingredientes funcionales
 
Proposta Projecte Ala Artificial
Proposta Projecte Ala ArtificialProposta Projecte Ala Artificial
Proposta Projecte Ala Artificial
 
Sperry Van Ness #CRE National Sales Meeting 4-1-13
Sperry Van Ness #CRE National Sales Meeting 4-1-13Sperry Van Ness #CRE National Sales Meeting 4-1-13
Sperry Van Ness #CRE National Sales Meeting 4-1-13
 
Presentación circuito excelencia para invitados - Rioja Alta
Presentación circuito excelencia para invitados - Rioja AltaPresentación circuito excelencia para invitados - Rioja Alta
Presentación circuito excelencia para invitados - Rioja Alta
 
How to Design Email Landing Pages That Convert
How to Design Email Landing Pages That Convert How to Design Email Landing Pages That Convert
How to Design Email Landing Pages That Convert
 
Sintessis del dmt (2)
Sintessis del dmt (2)Sintessis del dmt (2)
Sintessis del dmt (2)
 
Corporate Connections, Internet leased lines, VPN Services in Lucknow
Corporate Connections, Internet leased lines, VPN Services in LucknowCorporate Connections, Internet leased lines, VPN Services in Lucknow
Corporate Connections, Internet leased lines, VPN Services in Lucknow
 
Basics of Speckle Tracking and Cardiac Mechanics
Basics of Speckle Tracking and Cardiac MechanicsBasics of Speckle Tracking and Cardiac Mechanics
Basics of Speckle Tracking and Cardiac Mechanics
 
Accidente de trabajo manuela gomez
Accidente de trabajo manuela gomezAccidente de trabajo manuela gomez
Accidente de trabajo manuela gomez
 
10 Anni di SAP Business One...uno sguardo al futuro !
 10 Anni di SAP Business One...uno sguardo al futuro ! 10 Anni di SAP Business One...uno sguardo al futuro !
10 Anni di SAP Business One...uno sguardo al futuro !
 
Facturas de proveedores: 12 pasos para quitarse el hábito del papel
Facturas de proveedores: 12 pasos para quitarse el hábito del papelFacturas de proveedores: 12 pasos para quitarse el hábito del papel
Facturas de proveedores: 12 pasos para quitarse el hábito del papel
 
Sumak kausay
Sumak  kausaySumak  kausay
Sumak kausay
 
Energia Solar Fotovoltaica
Energia Solar FotovoltaicaEnergia Solar Fotovoltaica
Energia Solar Fotovoltaica
 
European Private Equity & Venture Capital Association
European Private Equity & Venture Capital AssociationEuropean Private Equity & Venture Capital Association
European Private Equity & Venture Capital Association
 
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...
1ra Exposición de productos del Mejoramiento Genético Vegetal generados en la...
 

Similar a SAX (con PHP)

5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones JavaIker Canarias
 
Kit de supervivencia para Java 8 : como prepararse para Java 9
Kit de supervivencia para Java 8 :  como prepararse para Java 9Kit de supervivencia para Java 8 :  como prepararse para Java 9
Kit de supervivencia para Java 8 : como prepararse para Java 9Eudris Cabrera
 
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...Liz Ocampo
 
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016Eudris Cabrera
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireportJosé Pedro Avila
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Jorge Ulises
 
Cagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERCagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERRodolfoRodriguez161
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)Darwin Durand
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Ronald Cuello
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap isxkorpium
 

Similar a SAX (con PHP) (20)

5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Datos En La Web - Clase 2
Datos En La Web - Clase 2Datos En La Web - Clase 2
Datos En La Web - Clase 2
 
Kit de supervivencia para Java 8 : como prepararse para Java 9
Kit de supervivencia para Java 8 :  como prepararse para Java 9Kit de supervivencia para Java 8 :  como prepararse para Java 9
Kit de supervivencia para Java 8 : como prepararse para Java 9
 
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...
Capitulo 27 (XML: Lenguaje de mercado extendible) y Capítulo 28 (Conceptos de...
 
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016
Java 8: Expresiones Lambdas y API Stream BarCamp RD 2016
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5Android de la A a la Z - Unidad 5
Android de la A a la Z - Unidad 5
 
Cagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERCagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSER
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Almdedat
AlmdedatAlmdedat
Almdedat
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap is
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación1
Presentación1Presentación1
Presentación1
 

Más de DaCoom

Recetario vegano
Recetario veganoRecetario vegano
Recetario veganoDaCoom
 
Arquitecturas risc y cisc
Arquitecturas risc y ciscArquitecturas risc y cisc
Arquitecturas risc y ciscDaCoom
 
Introducción a la gestion de calidad
Introducción a la gestion de calidadIntroducción a la gestion de calidad
Introducción a la gestion de calidadDaCoom
 
Componentes de un robot
Componentes de un robotComponentes de un robot
Componentes de un robotDaCoom
 
Clasificacion de robots
Clasificacion de robotsClasificacion de robots
Clasificacion de robotsDaCoom
 

Más de DaCoom (6)

Recetario vegano
Recetario veganoRecetario vegano
Recetario vegano
 
Arquitecturas risc y cisc
Arquitecturas risc y ciscArquitecturas risc y cisc
Arquitecturas risc y cisc
 
Introducción a la gestion de calidad
Introducción a la gestion de calidadIntroducción a la gestion de calidad
Introducción a la gestion de calidad
 
Componentes de un robot
Componentes de un robotComponentes de un robot
Componentes de un robot
 
Clasificacion de robots
Clasificacion de robotsClasificacion de robots
Clasificacion de robots
 
Gui
GuiGui
Gui
 

Último

4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBssusere52185
 
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdf
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdfREGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdf
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdfJULIOELIDEOROSIERRA
 
NOM-011-STPS-2001 NORMATIVA PRESENTACION
NOM-011-STPS-2001 NORMATIVA PRESENTACIONNOM-011-STPS-2001 NORMATIVA PRESENTACION
NOM-011-STPS-2001 NORMATIVA PRESENTACIONKarina224599
 
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfPROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfrgsteveo32
 
Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Yes Europa
 
Tema 2 - Documentación Comercial (2).pptx
Tema 2 - Documentación Comercial (2).pptxTema 2 - Documentación Comercial (2).pptx
Tema 2 - Documentación Comercial (2).pptxr8514199
 

Último (6)

4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
4.2. BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
 
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdf
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdfREGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdf
REGLAMENTO DEL APRENDIZ SERVICIO NACIONAL DE APRENDIZAJE SENA.pdf
 
NOM-011-STPS-2001 NORMATIVA PRESENTACION
NOM-011-STPS-2001 NORMATIVA PRESENTACIONNOM-011-STPS-2001 NORMATIVA PRESENTACION
NOM-011-STPS-2001 NORMATIVA PRESENTACION
 
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdfPROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
PROGRAMA DE EMPRENDIMIENTOS RENTABLES ARGENTINA.pdf
 
Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024Explora el boletín de 17 de abril de 2024
Explora el boletín de 17 de abril de 2024
 
Tema 2 - Documentación Comercial (2).pptx
Tema 2 - Documentación Comercial (2).pptxTema 2 - Documentación Comercial (2).pptx
Tema 2 - Documentación Comercial (2).pptx
 

SAX (con PHP)

  • 1. Aurora Arce Dueñas 1 1 3 0 0 0 5 1
  • 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.
  • 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

  1. Interfaces para procesado desde aplicaciones externas.
  2. 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