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 70 71 72 73 74 75 76
   |  
public class RSSHandler extends DefaultHandler{
	//résultats de notre parsing
	private List<Item> items;
	private Item item;
	//flags nous indiquant la position du parseur
	private boolean inListe, inItem, inTitre, inTexte;
	//buffer nous permettant de récupérer les données 
	private StringBuffer buffer;
 
	// simple constructeur
	public RSSHandler(){
		super();
	}
	//détection d'ouverture de balise
	public void startElement(String uri, String localName,
			String qName, Attributes attributes) throws SAXException{
		if(qName.equals("BALISE_GLOBALE_RSS")){
			items= new LinkedList<Item>();
			inListe = true;
                } else if(qName.equals("item")){
			item= new Item();
			inItem = true;
		}else {
			buffer = new StringBuffer();
			if(qName.equals("titre")){
				inTitre = true;
			}else if(qName.equals("texte")){
				inTexte = 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("BALISE_GLOBALE_RSS")){
			inListe = false;
		}else if(qName.equals("item")){
		        items.add(item);
			item = null;
			inItem = false;
		}else if(qName.equals("titre")){
			item.setTitre(buffer.toString());
			buffer = null;
			inTitre= false;
		}else if(qName.equals("texte")){
			item.setTexte(buffer.toString());
			buffer = null;
			inTexte = 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(Item p : Items){
			System.out.println(p);
		}
	}
} | 
Partager