1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| /////////////////////////////MySaxHandler//////////////////////////////////
public class MySaxHandler extends DefaultHandler {
/**
* Un tableau qui contient la hierarchie courante des balises
* Permet de gérer les balises imbriquées
**/
private List<String> 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<String>();
}
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");
//
}
} |
Partager