| 12
 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
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 
 | import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.jar.Attributes;
 
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
 
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
 
 
public class testHandler extends DefaultHandler {
	public LinkedList<test> annuaire;
	private test test;
 
	private boolean inAnnuaire,intest,inNom,inPrenom,inAdresse;
	private StringBuffer buffer;
	public testHandler(){
		super();
 
 
	}
 
	public void startElement(String uri, String localName, 
			String qName, Attributes attributes) throws SAXException{ 
		if(qName.equals("annuaire")){ 
			annuaire = new LinkedList<test>(); 
			inAnnuaire = true; 
		}else if(qName.equals("personne")){ 
			test = new test(); 
			try{ 
				int id = Integer.parseInt(attributes.getValue("id")); 
				test.setid(id); 
			}catch(Exception e){ 
				//erreur, le contenu de id n'est pas un entier 
				throw new SAXException(e); 
			} 
			intest = true; 
		}else { 
			buffer = new StringBuffer(); 
			if(qName.equals("nom")){ 
				inNom = true; 
			}else if(qName.equals("prenom")){ 
				inPrenom = true; 
			}else if(qName.equals("adresse")){ 
				inAdresse = true; 
			}else{ 
				//erreur, on peut lever une exception 
				throw new SAXException("Balise "+qName+" inconnue."); 
			} 
		} 
	} 
	//détection fin de balise 
	public void endElement(String uri, String localName, String qName) 
			throws SAXException{ 
		if(qName.equals("annuaire")){ 
			inAnnuaire = false; 
		}else if(qName.equals("personne")){ 
			annuaire.add(test); 
			test = null; 
			intest = false; 
		}else if(qName.equals("nom")){ 
			test.setNom(buffer.toString()); 
			buffer = null; 
			inNom = false; 
		}else if(qName.equals("prenom")){ 
			test.setPrenom(buffer.toString()); 
			buffer = null; 
			inPrenom = false; 
		}else if(qName.equals("adresse")){ 
			test.setAdresse(buffer.toString()); 
			buffer = null; 
			inAdresse = false; 
		}else{ 
			//erreur, on peut lever une exception 
			throw new SAXException("Balise "+qName+" inconnue."); 
		}           
	} 
	//détection de caractères 
	public void characters(char[] ch,int start, int length) 
			throws SAXException{ 
		String lecture = new String(ch,start,length); 
		if(buffer != null) buffer.append(lecture);        
	} 
	//début du parsing 
	public void startDocument() throws SAXException { 
		System.out.println("Début du parsing"); 
	} 
	//fin du parsing 
	public void endDocument() throws SAXException { 
		System.out.println("Fin du parsing"); 
		System.out.println("Resultats du parsing"); 
		for(test p : annuaire){ 
			System.out.println(p); 
		} 
	} 
 
	public static void main(String [ ] args) throws SAXException, IOException, ParserConfigurationException{
 
		SAXParserFactory fabrique = SAXParserFactory.newInstance(); 
		SAXParser parseur = fabrique.newSAXParser(); 
 
		File fichier = new File("********.xml"); 
		DefaultHandler gestionnaire = new testHandler(); 
		parseur.parse(fichier, gestionnaire);
	}
 
 
} | 
Partager