All pastes #255984 Raw Edit

Trucs

public text v1 · immutable
#255984 ·published 2006-11-23 17:03 UTC
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