/*   Corrige exo 1  
*/
import org.w3c.dom.*;
import javax.xml.parsers.*;// DocumentBuilderFactory, DocumentFactory
import java.util.Scanner;
import java.io.*;
import java.io.File;

//pour la suvegarded'un arbre dom en xml
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.*;

public class DOM {
	private Document dom;
	
	public static void main(String [] args) {
		DOM d = new DOM();
        d.creerArbre();
		d.SauverArbre("patiel.xml");
		
	}
	
	public void creerArbre() {
		try {  
			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
			DocumentBuilder parser = fabrique.newDocumentBuilder();
            String pnom, pprenom;
            
           // On r?cup?re le flot de l'entr?e standard (par d?faut le clavier) dans un objet Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("Veuillez saisir le nom :");
            pnom = sc.nextLine();
            System.out.println("Veuillez saisir le prenom :");
            pprenom = sc.nextLine();
            // creer un nouveau fils etudiant
            Element fils = dom.createElement("etudiant");		
            fils.setAttribute("nom",pnom);	
            fils.setAttribute("prenom",pprenom);
            //recuperer la racine
            Element racine = dom.getDocumentElement();	
            // ajouter le nouveau fils		
            racine.appendChild(fils);
		}
		catch(Exception e) {
		}
	}
	
	public void SauverArbre(String fileName) {
		try {
			TransformerFactory tf = TransformerFactory.newInstance();
			Transformer transformer = tf.newTransformer();
			transformer.setOutputProperty(OutputKeys.METHOD, "xml");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
			File f = new File(fileName);
			if (f.exists()) {
			f.delete();
			}
			StreamResult nvFichier = new StreamResult(f);
			transformer.transform(new DOMSource(dom), nvFichier);
		}
		catch(Exception e) {
		}

	}
}