public class MySaxHandler extends DefaultHandler { /** * Un tableau qui contient la hierarchie courante des balises * Permet de gérer les balises imbriquées **/ private List blocks; public void parse(InputStream input) throws ParserConfigurationException, SAXException, IOException{ // creation du parser SAX SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); factory.setNamespaceAware(true); SAXParser parser = factory.newSAXParser(); // lancement du parsing en précisant le flux et le "handler" // l'instance qui implémente les méthodes appelées par le parser // dans notre cas: this parser.parse(input, this); } public void parse(String filename) throws FileNotFoundException, ParserConfigurationException, SAXException, IOException{ parse(new FileInputStream(filename)); } public void startDocument() throws SAXException{ // initialisation blocks = new ArrayList(); } public void startElement( String uri, String localName, String qName, Attributes attributes) throws SAXException { String nom=attributes.getValue(0); if (localName.equals("Key")) { System.out.println(""+nom); } if (localName.equals("maBaliseImbrique")) { blocks.add(localName+"-"+attributes.getValue("Row")); } } public static void main( String[] args ) throws FileNotFoundException, ParserConfigurationException, SAXException, IOException { MySaxHandler handler= new MySaxHandler(); handler.parse("c:/Default.xml"); // } }