Bonjour

Je cherche à réaliser une fonction qui recoit quelques parmètres et qui les ajoute (les écris) à la fin d'un document XML.
J'ai déjà pas mal cherché sur internet, regardé différentes API... mais je suis débutant et je ne comprend absolument pas comment y arriver... J'ai déjà du mal à faire la fonction juste pour qu'elle crée une fois le fichier XML puis qu'elle l'écrase à chaque fois mais alors pour rajouter les éléments à la fin cela n'ira meme plus du tout (si ça marchait lol...).

Si quelqu'un avait un petit exemple compréhensible de ce genre de chose... je lui en serai très très reconnaissant!

EDIT : je poste mon code qui me permet de créer le fichier XML (il marche ) ce que je voudrais c'est le modifier pour ne plus écraser le fichier mais bien seulement ajouter l'enregistrement passé en parametre....

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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package mms.tools;
 
import getfiles.GetCounter;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
 
//For jdk1.5 with built in xerces parser
//import com.sun.org.apache.xml.internal.serialize.OutputFormat;
//import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
 
//For JDK 1.3 or JDK 1.4  with xerces 2.7.1
import org.apache.xml.serialize.XMLSerializer;
import org.apache.xml.serialize.OutputFormat;
 
 
public class WriteMsg2 {
 
	//No generics
	Document dom;
 
	public WriteMsg2() {
 
		//Get a DOM object
		createDocument();
	}
 
	/**
         * Using JAXP in implementation independent manner create a document object
         * using which we create a xml tree in memory
         */
	private void createDocument() {
 
		//get an instance of factory
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		try {
		//get an instance of builder
		DocumentBuilder db = dbf.newDocumentBuilder();
 
		//create an instance of DOM
		dom = db.newDocument();
 
		}catch(ParserConfigurationException pce) {
			//dump it
			System.out.println("Error while trying to instantiate DocumentBuilder " + pce);
			System.exit(1);
		}
 
	}
 
	/**
         * The real workhorse which creates the XML structure
         */
	private void createDOMTree(String user,String subject,String content,int priority){
 
		//create the root element <Messages>
		Element rootEle = dom.createElement("Messages");
		dom.appendChild(rootEle);
 
		//create <Messages> element and attach it to root
		Element messagesEle = createMessageElement(user,subject,content,priority);
		rootEle.appendChild(messagesEle);
	}
 
	/**
         * Helper method which creates a XML element <Message>
         * @param The message for which we need to create an xml representation
         * @return XML element snippet representing a message
         */
	private Element createMessageElement(String user,String subject,String content,int priority){
	    String MESSAGE = "MSG";
		Element messageEle = dom.createElement("Message");
 
		//create user element and user text node and attach it to bookElement
		Element idEle = dom.createElement("ID");
		GetCounter cnt = new GetCounter();
		int CNT_CNT = cnt.addCounter(MESSAGE, true);
		Text idText = dom.createTextNode(CNT_CNT+"");
		idEle.appendChild(idText);
		messageEle.appendChild(idEle);
 
		//create user element and user text node and attach it to bookElement
		Element authEle = dom.createElement("USER");
		Text authText = dom.createTextNode(user);
		authEle.appendChild(authText);
		messageEle.appendChild(authEle);
 
		//create subject element and subject text node and attach it to bookElement
		Element titleEle = dom.createElement("SUBJECT");
		Text titleText = dom.createTextNode(subject);
		titleEle.appendChild(titleText);
		messageEle.appendChild(titleEle);
 
		//create content element and content text node and attach it to bookElement
		Element contentEle = dom.createElement("CONTENT");
		Text contentText = dom.createTextNode(content);
		contentEle.appendChild(contentText);
		messageEle.appendChild(contentEle);
 
		//create priority element and priority text node and attach it to bookElement
		Element priorityEle = dom.createElement("PRIORITY");
		Text priorityText = dom.createTextNode(priority+"");
		priorityEle.appendChild(priorityText);
		messageEle.appendChild(priorityEle);
 
		return messageEle;
 
	}
 
	/**
         * This method uses Xerces specific classes
         * prints the XML document to file.
     */
	private void printToFile(){
 
		try
		{
			//print
			OutputFormat format = new OutputFormat(dom);
			format.setIndenting(true);
 
			//to generate output to console use this serializer
			//XMLSerializer serializer = new XMLSerializer(System.out, format);
 
 
			//to generate a file output use fileoutputstream instead of system.out
			XMLSerializer serializer = new XMLSerializer(
			new FileOutputStream(new File("messages.xml")), format);
 
			serializer.serialize(dom);
 
		} catch(IOException ie) {
		    ie.printStackTrace();
		}
	}
 
 
	public void wMsg(String user,String subject,String content,int priority) {
 
		//create an instance
		WriteMsg2 xce = new WriteMsg2();
 
		//run
		System.out.println("Started .. ");
		createDOMTree(user,subject,content,priority);
		printToFile();
		System.out.println("Generated file successfully.");
	}
}
Merci