Help_Save_XML

cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 11 nov. 2003 à 20:49
Judastein Messages postés 3 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 mai 2004 - 4 mai 2004 à 17:30
J’ai un souci avec le XML.
Quand je rentre une nouvelle information, les anciennes données sont perdues.
Parement, il faut lire le fichier avant de rentrée des nouvelles informations.

private void Save_XML()
{
XmlTextWriter xtw = new XmlTextWriter(@"toto.xml", System.Text.Encoding.UTF8);  
xtw.Formatting = Formatting.Indented;    
//xtw.Indentation = 3;   // c koi ?
xtw.WriteStartDocument();     
xtw.WriteComment("CouCou");  

xtw.WriteStartElement("contacts");  
xtw.WriteStartElement("contact"); 
 
xtw.WriteElementString("contact name", "JCpp");  

xtw.WriteEndElement();  
xtw.Flush(); 
xtw.Close();
}


Merci All

6 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
12 nov. 2003 à 01:33
Bonjour,

Attention ! un fichier XML est fortement structuré, les règles sont très précises pour qu'il soit "bien formé".
Il possède en particulier une seule racine.
Lorsque l'on rajoute des lignes à un fichier XML bien formé, on N'obtient PLUS un XML bien formé.

Exemple :
<racine>fichier correct </racine>

mais :
<racine>fichier correct </racine>
<racine>fichier devenu incorrect </racine>
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
12 nov. 2003 à 01:36
Sinon,

le
xtw.Indentation = 3;

est le nombre de blancs correspondants à l'indentation automatique désirée

<racine>
<elt/>
</racine>
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
12 nov. 2003 à 08:17
Ok, ça ne répond pas vraiment à ma question
Comment écrire dans le fichier sans tout effacer
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
12 nov. 2003 à 08:25
Ci la structure est mal structuré, c pas bien grave pour moi.
J’utilise le XML pour stoker des données et j’ai besoin d’en ajouter au cours du programme.


<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Dictionnaire A-->

<contacts>
<contact>
<mot>abrasion</mot><type>nf</type>
                  <définition>usure par frottement</définition>
</contact>
....
<contact>
<mot>acier</mot><type>nm</type>
                  <définition>alliage de fer et de carbone</définition>
</contact>

Ce morceau de code, je n’arrive plus à le refaire, je l’avais utilisé avant que mon PC grille pour Jenny. Je ne c’est plus au je les récupérer. C’est pour cela que j’ai besoin d’aide.

http://perso.wanadoo.fr/iar/IAb_Images.htm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hkopoin Messages postés 1 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 29 avril 2004
29 avril 2004 à 18:05
Désolé mais j'ai actuellement le même soucis. Lorsque j'essai de généré une nouvelle ligne xml dans mon fichier il me remplace le code existant par le nouveau code.

Selon moi le problème vient du fait que je n'ai pas encore à ce jour l'équivalent xml pour me positionner à la fin d'une balise donné ou de mon fichier puis d'insérer un nouveau code xml à cet endroit.

Si l'un de vous à une réponse sur ce sujet, qu'il en fasse profiter tout le monde car c'est un sujet d'un importance capitale sur le projet sur lequel je suis présentement.

Merci à vous.
0
Judastein Messages postés 3 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 mai 2004
4 mai 2004 à 17:30
Salut, j'ai trouvé une solution pour un probléme similaire!!!
C'est pas tres propre mais ca fonctionne!!!
Alors voila ce que ca donne...

//////////
String Format="";
String Cool="";
int nb=0;
int i=0;
//Pour l'exemple du fichier Xml au dessus
Format="<contact><mot>bois</mot><type>nm</type>
<définition></définition>
</contact>";
//lecture du fichier
StreamReader SR=new StreamReader(@"//adresse du fichier");
string sTmp=SR.ReadLine();
//recupere le nombre de caractere
nb=sTmp.Length;
//9 pour la balise de fin </contact>
while(i<(nb-9))
{
Cool=Cool+sTmp[i];
i++;
}

Cool=Cool+Format+"</contact>";
SR.Close();
//Maintenant on sauvegarde
StreamWriter SW=new StreamWriter(@"adresse du fichier");
SW.WriteLine(Cool);
SW.Close();
//fin

Voila ce que ca donnerai!!!
mais il doit tres certainement avoir un moyen plus simple pour le faire.
0
Rejoignez-nous