bonjour chers membres
Je suis nouveau sur ce forum, malgré que je connaisse ce site depuis ma première année de BTS.
Mais bon voila, parfois les FAQ et les copains ne suffisent pas pour vous dépatouillez d’un programme capricieux. Je remercie la communauté de ce site au passage, on dit jamais assez merci car vous m’avez sauvé de gros problème plus d’une fois. (du C, C++, C#, Java, en passant par l’installation d’un serveur SVN et bien d’autre …)
J’explique mon problème on ma demandé de faire une conversion d’un fichier de contenu un XML en un fichier de contenu et de graphisme HTML, donc voila pour l’histoire.
Le truc super logique déjà. Donc j’ai 6 fichiers XMl qu’il faut que je parcours pour avoir les fameuses balises de contenu(Node).
Voila mon code (vraiment moche mais temp que ca marche)
Je suis pas super douer en java donc pas de taunt svp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class CreationFichier { FileWriter writer; public boolean fichierExiste(String fichier){ File toto = new File("D:/"+ fichier +".txt"); if(toto.exists() == true) { return true; } else{ return false; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 public class OuvertureXmlDOM { public static void main(String[] args){ String titre = "", contenu ="" , nomBalise ="", user="" , nomprenom ="", temp=""; short type = 0; int index = 0 ,i,nbtag,j; int nombreNoeud; int[] tab = new int[300]; String name ="TITRE", name2 = "CORPS", name3="CODE_REDACTEUR"; NodeList listdenoeud2; NodeList listdesnoeud; NodeList listdenoeud3; Node node1; Node node2; Node node3; FileWriter writer2 = null; FileWriter writer = null; Utilisateurs utilisateur = new Utilisateurs(); CreationFichier txt = new CreationFichier(); try{ // création d'une fabrique de documents DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); // création d'un constructeur de documents DocumentBuilder constructeur = fabrique.newDocumentBuilder(); // lecture du contenu d'un fichier XML avec DOM //File xml = new File("D:/UTILISATEUR.xml"); File xml = new File("D:/ARTICLE.xml"); Document document = constructeur.parse(xml); //On prend l'arbre racine de l'élément Element racine = document.getDocumentElement();//traitement du document // listdesnoeud = racine.getElementsByTagName(name); nombreNoeud =listdesnoeud.getLength(); listdenoeud2 = racine.getElementsByTagName(name2); listdenoeud3 = racine.getElementsByTagName(name3); nbtag = listdenoeud3.getLength(); for(i=0; i<listdesnoeud.getLength();i++) { titre = listdesnoeud.item(i).getTextContent(); nomBalise = listdesnoeud.item(i).getNodeName(); contenu = listdenoeud2.item(i).getTextContent(); user = listdenoeud3.item(i).getTextContent(); //stoque le nom et le prénom de l'utilisateur nomprenom = utilisateur.getusers(user); if(txt.fichierExiste(nomprenom) == true) { writer2 = new FileWriter("D:/" + nomprenom + ".txt", true); writer2.write("<br /> <br /><p> <h1> "); writer2.write(titre, 0, titre.length()); writer2.write("</h1> </p> <br /> <br /> <p> "); writer2.write(contenu,0,contenu.length()); writer2.write("</p> <br /> <br /> "); writer2.close(); } else{ writer2 = new FileWriter("D:/"+ nomprenom + ".txt"); writer2.write("<br /> <br /><p> <h1> "); writer2.write(titre, 0, titre.length()); writer2.write("</h1> </p> <br /> <br /> <p> "); writer2.write(contenu,0,contenu.length()); writer2.write("</p> <br /> <br /> "); writer2.close(); } } }catch(ParserConfigurationException pce){ System.out.println("Erreur de configuration du parseur DOM"); System.out.println("lors de l'appel à fabrique.newDocumentBuilder();"); }catch(SAXException se){ System.out.println("Erreur lors du parsing du document"); System.out.println("lors de l'appel à construteur.parse(xml)"); }catch(IOException ioe){ System.out.println("Erreur d'entrée/sortie"); System.out.println("lors de l'appel à construteur.parse(xml)"); } } }Il me construit bien les fichier avec les noms de l'utilisateur avec les articles dedans mais a un moment aprés 3-4 seconde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public class Utilisateurs { String name; NodeList listId; NodeList listNomUser; NodeList listPrenomUser; String code; String nom, prenom; String nompers ; public String getusers(String id) {int i,j, test1, test2; try{ // création d'une fabrique de documents DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); // création d'un constructeur de documents DocumentBuilder constructeur = fabrique.newDocumentBuilder(); // lecture du contenu d'un fichier XML avec DOM File xml = new File("D:/UTILISATEUR.xml"); Document document = constructeur.parse(xml); //On prend l'arbre racine de l'élément Element racine = document.getDocumentElement();//traitement du document code = "CODE"; nom = "NOM"; prenom = "PRENOM"; listId = racine.getElementsByTagName(code); listNomUser = racine.getElementsByTagName(nom); listPrenomUser = racine.getElementsByTagName(prenom); for(i=0;i<listId.getLength();i++) {if(listId.item(i).getTextContent().equals(id) == true) { nompers = listNomUser.item(i).getTextContent() +"_"+ listPrenomUser.item(i).getTextContent(); return nompers; } } }catch(ParserConfigurationException pce){ System.out.println("Erreur de configuration du parseur DOM"); System.out.println("lors de l'appel à fabrique.newDocumentBuilder();"); }catch(SAXException se){ System.out.println("Erreur lors du parsing du document"); System.out.println("lors de l'appel à construteur.parse(xml)"); }catch(IOException ioe){ System.out.println("Erreur d'entrée/sortie"); System.out.println("lors de l'appel à construteur.parse(xml)"); } return nompers; } }
«*Erreur d’entrée/sortie lors de l’appel à constructeur.parse(XML)*»
Si il n’arrivait pas à ouvrir le document XMl avec DOM ca me ferais une erreur tout de suite. Il n'irait pas créer les fichier txt et écrire dedans.
Donc bon, la je ne comprend pas, si quelqu'un pouvais m'expliquer un peu ce qui cloche.
Merci de m'avoir lu.
Partager