Introduction à SAX et illustration avec Java
SAX est l'acronyme de Simple API for XML.
SAX est une API qui sert à parcourir un fichier XML, elle se base sur des événements déclenchés durant la lecture du flux (balise ouvrante, balise fermante...).
Développée pour plusieurs langages de programmation (JAVA, C++, PHP, Perl, ...).
Très utilisé pour les documents très lourds, car il nécessite moins de mémoire que les autres API.
Définition : Principe
La première interface intitulée ContentHandler, permet d'analyser le flux entrant à l'aide des événements. Il suffit de redéfinir les fonctions pour avoir le comportement souhaité.
Fondamental : Gestion d'un élément
Un élément correspond à des balises, notamment une balise ouvrante et une balise fermante.
startElement est déclenchée au démarrage d'un élément XML (balise ouvrante), elle a plusieurs paramètres dont l'espace de nommage, le nom de la balise, et les attributs de cette balise s'ils existent.
endElement est déclenchée à la fin du traitement d'une balise.
public void startElement(String uri, String localName, String rawName, Attributes atts) throws SAXException {
System.out.println("Ouverture de la balise : " + localName);
}
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.print("Fermeture de la balise : " + localName);
}
Exemple : Gestion du début et de la fin d'un document
Dans l'interface ContentHandler, ces événements sont gérés par les deux fonctions startDocument et endDocument.
La fonction startDocument est la première fonction qui est appelée parmi toutes les autres.
De même endDocument est la dernière fonction qui est appelée à la fin de l'analyse.
public void startDocument() throws SAXException {
System.out.println("Debut de l'analyse du document");
}
public void endDocument() throws SAXException {
System.out.println("Fin de l'analyse du document" );
}