// ------------------------------- XMLParserRepartiteur.java ------------------------------ package outil; import java.io.FileReader; import java.util.Vector; /** Package modmission regroupe les classes du modele. **/ import modmission.Repartiteur; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import org.xml.sax.helpers.XMLReaderFactory; import org.xml.sax.helpers.ParserFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; public class XMLParserRepartiteur extends DefaultHandler { private Repartiteur unRepartiteur; private String valeur = ""; private Vector mesRepartiteurs = new Vector(); public XMLParserRepartiteur() { super(); } public Vector getLesRepartiteurs() { return this.mesRepartiteurs; } public void parseRepartiteur(String fichierXML) throws Exception { XMLReader xr = XMLReaderFactory.createXMLReader(); xr.setContentHandler(this); xr.setErrorHandler(this); FileReader r = new FileReader(fichierXML); xr.parse(new InputSource(r)); } public void startElement (String uri, String name, String qName, Attributes atts) { if (qName.compareToIgnoreCase("repartiteur")==0) { unRepartiteur = new Repartiteur(); } } public void endElement (String uri, String name, String qName) { if (qName.compareToIgnoreCase("idRepartiteur")==0) { unRepartiteur.setIdPersonnel(Integer.parseInt(valeur.trim())); } if (qName.compareToIgnoreCase("nom")==0) { unRepartiteur.setNom(valeur.trim()); } if (qName.compareToIgnoreCase("prenom")==0) { unRepartiteur.setPrenom(valeur.trim()); } if (qName.compareToIgnoreCase("repartiteur")==0) { mesRepartiteurs.add(unRepartiteur); } valeur=""; } public void characters (char ch[], int start, int length) { for (int i=start; i < start + length; i ++) { valeur+=(char)ch[i]; } } public void ajouteRepartiteur(int sonIdRepartiteur,String sonNom, String sonPrenom) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.newDocument(); Element racine = document.createElement("repartiteurs"); document.appendChild(racine); Element client = document.createElement("repartiteur"); Element idClient = document.createElement("idRepartiteur"); idClient.appendChild(document.createTextNode(Integer.toString(sonIdRepartiteur))); client.appendChild(idClient); Element nom = document.createElement("nom"); nom.appendChild(document.createTextNode(sonNom)); client.appendChild(nom); Element prenom = document.createElement("prenom"); prenom.appendChild(document.createTextNode(sonPrenom)); client.appendChild(prenom); racine.appendChild(client); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(System.out); transformer.transform(source, result); } }//fin class XMLParserRepartiteur