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éfinitionPrincipe

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é.

FondamentalGestion 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.

1
public void startElement(String uri, String localName, String rawName,  Attributes atts) throws SAXException {
2
  System.out.println("Ouverture de la balise : " + localName);
3
}
4
5
public void endElement(String uri, String localName, String qName) throws SAXException {
6
  System.out.print("Fermeture de la balise : " + localName);
7
}

ExempleGestion 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.

1
public void startDocument() throws SAXException {
2
    System.out.println("Debut de l'analyse du document");
3
}
4
5
public void endDocument() throws SAXException {
6
    System.out.println("Fin de l'analyse du document" );
7
}