Lecture : Les Interface, section 12 du chapitre 6 du livre "Programmer en Java" de C. Delannoy
En première approximation, une interface = une classe abstraite sans champ ni implémentation de méthode, i.e. ne contenant que des méthodes abstraites.
Regarder dans la doc de l'API
L'interface org.xml.sax.ContentHandler
La classe org.xml.sax.helpers.DefaultHandler
La classe org.xml.sax.Attributes
La classe (concrète) DefaultHandler implémente déjà l'interface ContentHandler.
Pour intercepter les éléments générés par le parseur SAX, vous devez créer une classe qui étend DefaultHandler et redéfinit
certaines de ses méthodes (e.g. startElement).
Puis vous devez créer une instance de parseur SAX et invoquer sa méthode parse
en lui donnant comme paramètre un fichier à parser et un "handler"
(une instance d'une classe qui implémente l'interface ContentHandler).
Cf. tutoriel Oracle ci-dessus, diagramme UML et portion de code ci-dessous.
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.*;
import javax.xml.parsers.*;
import java.io.File;
public class VotreHandler extends DefaultHandler
{
public static void main (String args[])
{
VotreHandler vH = new VotreHandler();
File fileToParse = new File ("chemin/sampleXML.xml");
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
SAXParser saxParser = spf.newSAXParser();
saxParser.parse(fileToParse, vH);
} catch (Exception e) {
e.printStackTrace();
}
}
}