
package DOM;
import java.io.*;
import java.security.AllPermission;
import java.util.Scanner;

import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;

/**
 * @author Administrateur
 *
 */


public class Parser {

	public PrintWriter out = null;

	//Rem changer Package par ModelElement
	public void parse(String _fichier)
		throws SAXException, ParserConfigurationException, IOException {

		// Charger le document
		FileInputStream _xml_input_file = new FileInputStream(_fichier);

		parse(_xml_input_file);
	}

	public void parse(InputStream _xml_input_file)
		throws SAXException, ParserConfigurationException, IOException {
		
		//creation du fichier output
		out = new PrintWriter( 
		new FileOutputStream("output_2.xml"));
		out.println("<?xml version=\"1.0\"?>");
		out.println("<E-mails>");
	
		//instancier le contructeur de parseurs
		DocumentBuilderFactory _factory = DocumentBuilderFactory.newInstance();

		//ignorer les commentaires dans les fichiers XML parsees
		_factory.setIgnoringComments(true);
		
		// creer un parseur
		DocumentBuilder _builder = _factory.newDocumentBuilder();

		// Charger le document
		Document doc = _builder.parse(_xml_input_file);

		// Parser le document
		Element library = doc.getDocumentElement();
		NodeList allChilds = library.getChildNodes();
		
		for (int i = 0; i < allChilds.getLength() ; i++) {
			Node node = allChilds.item(i);
			if (node.getNodeType() == Node.ELEMENT_NODE) {
				Element elt = (Element) node;
				
				System.out.println(DomaineTemplate(elt,""));
				
				Scanner sc = new Scanner(System.in);
				System.out.println("Balise a supprimer : To, From, Subject, Body");
				String name = sc.nextLine();

				out.println(DomaineTemplate(elt, name));
				
			}
		}
		out.println("</E-mails>");
		out.close();
		out.flush();
	}
	
	public String DomaineTemplate(Element domaine, String name) {
		String s = "<E-mail>\n";
		if(!name.equals("To"))
			s += "<" + domaine.getElementsByTagName("To").item(0).getNodeName() + ">" + domaine.getElementsByTagName("To").item(0).getTextContent() + "</" + domaine.getElementsByTagName("To").item(0).getNodeName() + ">\n";
		if(!name.equals("From"))	
			s += "<" + domaine.getElementsByTagName("From").item(0).getNodeName() + ">" + domaine.getElementsByTagName("From").item(0).getTextContent() + "</" + domaine.getElementsByTagName("From").item(0).getNodeName() + ">\n";
		if(!name.equals("Subject"))		
			s += "<" + domaine.getElementsByTagName("Subject").item(0).getNodeName() + ">" + domaine.getElementsByTagName("Subject").item(0).getTextContent() + "</" + domaine.getElementsByTagName("Subject").item(0).getNodeName() + ">\n";
		if(!name.equals("Body"))		
			s += "<" + domaine.getElementsByTagName("Body").item(0).getNodeName() + ">" + domaine.getElementsByTagName("Body").item(0).getTextContent() + "</" + domaine.getElementsByTagName("Body").item(0).getNodeName() + ">\n";
		s += "</E-mail>\n";
		
		return s;
	}
}
