/** Une solution partielle au problème 1 (TP DA XML 2002-2003) Olivier Capuozzo (kpu@compuserve.com) */ import java.io.*; public class VentesCSVtoXMLFile { final String[] balises = {"public","code","qte","mois","annee","commentaire"}; String nameFileDest, nameFileSource; PrintWriter out; public VentesCSVtoXMLFile(String nameFile) { nameFileSource = nameFile; nameFileDest = changeExtension(nameFileSource, "xml"); } public void go() { try { FileReader fr = new FileReader(nameFileSource); BufferedReader br = new BufferedReader(fr); File file = new File(nameFileDest); if (file.exists()) { BufferedReader clav = new BufferedReader(new InputStreamReader(System.in)); System.out.print(nameFileDest + " existe, voulez-vous l'écraser ? (O/N) : "); String rep = clav.readLine(); if (rep == null) rep = "N"; if (!("O".equals(rep.toUpperCase()))){ return; } } out = new PrintWriter(new FileWriter(nameFileDest)); String line; prepareXML(); while ((line = br.readLine()) != null) { ajouteProduitXML(line.split(";")); } termineXML(); out.flush(); } catch (java.io.FileNotFoundException e){ System.out.println(nameFileSource + " : fichier introuvable."); } catch (ArrayIndexOutOfBoundsException e){ System.out.println(nameFileSource + " : mauvais format de fichier."); } catch (java.io.IOException e) { System.out.println(e); } } /** @param nameFile le nom du fichier initial @param newExt la nouvelle extension @return le nom du fichier initial avec une nouvelle extension. Dans le cas où il n'y a pas d'extension dans le nom initial, l'extension est ajoutée. exemple : changeExtension("toto.txt", "xml") rend "toto.xml" exemple : changeExtension("toto", "xml") rend "toto.xml" exemple : changeExtension("", "xml") rend ".xml" */ static public String changeExtension(String nameFile, String newExt) { String res = "afaire"; // A FAIRE return res; } protected void prepareXML(){ out.print(" \r\n"); out.print("\r\n"); out.print("\r\n"); } protected void ajouteProduitXML(String[] infosproduit){ int i=0; out.print(" \r\n"); for (;i"); out.print(infosproduit[i]+ "\r\n"); } i = balises.length-1; // traitement du dernier élément () // pouvant être absent de la ligne if (infosproduit.length < balises.length) { out.print(" <"+balises[i]+"/>\r\n"); } else { out.print(" <"+balises[i]+">"); out.print(infosproduit[i]+ "\r\n"); } out.print(" \r\n"); } protected void termineXML(){ out.print("\r\n"); } public static void main (String[] args) { if (args.length == 1) { VentesCSVtoXMLFile app = new VentesCSVtoXMLFile(args[0]); app.go(); } else System.out.println("USAGE : " + new VentesCSVtoXMLFile("").getClass().getName() + " nomFivchierCSVventes"); } }