rendered paste body// ------------------------------- XMLParserRepartiteur.java ------------------------------
package outils;
import java.io.*;
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.*;
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.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class XMLParserRepartiteur extends DefaultHandler
{
private Repartiteur unRepartiteur;
private String valeur = "";
private Vector<Repartiteur> mesRepartiteurs = new Vector<Repartiteur>();
public XMLParserRepartiteur()
{
super();
}
public Vector<Repartiteur> 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(String sonNom, String sonPrenom) throws Exception
{
parseRepartiteur("repartiteur.xml");
// unRepartiteur.setIdPersonnel(sonIdRepartiteur);
// unRepartiteur.setNom(sonNom);
// unRepartiteur.setPrenom(sonPrenom);
// mesRepartiteurs.add(unRepartiteur);
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");
for (int i=0;i<mesRepartiteurs.size();i++)
{
Element idClient = document.createElement("idRepartiteur");
idClient.appendChild(document.createTextNode(Integer.toString(mesRepartiteurs.elementAt(i).getIdPersonnel())));
client.appendChild(idClient);
Element nom = document.createElement("nom");
nom.appendChild(document.createTextNode(mesRepartiteurs.elementAt(i).getNom()));
client.appendChild(nom);
Element prenom = document.createElement("prenom");
prenom.appendChild(document.createTextNode(mesRepartiteurs.elementAt(i).getPrenom()));
client.appendChild(prenom);
racine.appendChild(client);
}
transformerXml(document, "repartiteur1.xml");
}
public void transformerXml(Document document, String fichier)
{
try
{
// Creation de la source DOM
Source source = new DOMSource(document);
// Creation du fichier de sortie
File file = new File(fichier);
Result resultat = new StreamResult(fichier);
// Configuration du transformer
TransformerFactory fabrique =
TransformerFactory.newInstance();
Transformer transformer = fabrique.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
// Transformation
transformer.transform(source, resultat);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}//fin class XMLParserRepartiteur