Bonjour à tous,
J'ai un petit soucis d'écriture XML en C#, je sais d'où ça vient du moins je pense savoir mais je ne sais pas comment le règler.
Donc en fait je crée un fichier xml qui est initialisé à l'ouverture du formulaire, je clique sur le bouton lancer et j'écris des données dedans en boucle jusqu'à ce que je clique sur arrêter. Et quand je veux relancer l'écriture, j'ai une exception qui est gérée, celle-ci :
Quelqu'un a t'il une proposition pour moi ?Write Start Document doit être le premier appel
Et voilà le code en partie :
Merci d'avance pour votre aide
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 public partial class F_Temperature : Form { XmlTextWriter ReleveSonde = new XmlTextWriter("releveTemperature.xml", System.Text.Encoding.UTF8); private void B_Lancer_Click(object sender, EventArgs e) { try { ReleveSonde.WriteStartDocument(); ReleveSonde.Formatting = Formatting.Indented;//présentation du fichier xml sous une forme claire ReleveSonde.WriteComment("Relevés de la sonde"); // commentaire ThreadStart delegue = new ThreadStart(Consult); this.monThread = new Thread(delegue); this.monThread.Start(); } catch (Exception xml) { MessageBox.Show(xml.Message.ToString()); } } private void B_Arret_Click(object sender, EventArgs e) { // Stop le thread this.monThread.Abort(); ReleveSonde.WriteEndElement();//fin d'écriture du fichier xml ReleveSonde.Flush(); ReleveSonde.Close(); } //dans la boucle j'écris de cette façon ReleveSonde.WriteStartElement("releve"); ReleveSonde.WriteElementString("moment", DateTime.Now.ToString() + "," + DateTime.Now.Millisecond.ToString()); ReleveSonde.WriteElementString("temperature", valeur); ReleveSonde.WriteEndElement(); ReleveSonde.Flush();// efface les mémoires tampons du flux
Partager