IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

XML éviter de réécrire le fichier [Débutant]


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut XML éviter de réécrire le fichier
    Bonsoir à tous,

    Voici un petit soucis qui m'embête un peu.
    J'ai un fichier XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Connect>
    <Id1>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA</Id1>
    <Mdp1>ZUuHfFNO9ZwAAAAAOgAAAAAIAACAAAADn8m7UvxAcUB462XKBr</Mdp1>
    //Je voudrais écrire à partir d'ici
    <Connect/>
    Donc mon problème est d"écrire après la balise </Mdp1>. Auparavant je supprimais le fichiers et le recréait avec StreamWriter m'évitant de bloqué sur ce cas. Mais là j'aurais besoin que ca fonctionne
    J'utilise XmlTextWriter, j'ai cru comprendre que c'était possible avec...
    Mais pour l'instant c'est le vide avec ceci :
    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
    byte[] bytesId = Encoding.UTF8.GetBytes(AjoutIdMulti.Text);                                      //String en byte
                byte[] protectedId = ProtectedData.Protect(bytesId, null, DataProtectionScope.CurrentUser); //Cryptage
     
                byte[] bytesMdp = Encoding.UTF8.GetBytes(AjoutMdpMulti.Text);
                byte[] protectedMdp = ProtectedData.Protect(bytesMdp, null, DataProtectionScope.CurrentUser);
     
                FileStream f = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                XmlTextWriter xmlw = new XmlTextWriter(f, System.Text.Encoding.UTF8);
                xmlw.WriteStartDocument();
                xmlw.WriteStartElement("Connect");
                if (identifiant1 != "vide")
                {
                    xmlw.WriteStartElement("Id1");
                    xmlw.WriteEndElement();
                    xmlw.WriteStartElement("Mdp1");
                    xmlw.WriteEndElement();
                    if (identifiant2 != "vide")
                    {
                        xmlw.WriteStartElement("Id2");
                        xmlw.WriteEndElement();
                        xmlw.WriteStartElement("Mdp2");
                        xmlw.WriteEndElement();
                    }
                    else
                    {
                        xmlw.WriteStartElement("Id2");
                        xmlw.WriteString(Convert.ToBase64String(protectedId));
                        xmlw.WriteEndElement();
                        xmlw.WriteStartElement("Mdp2");
                        xmlw.WriteString(Convert.ToBase64String(protectedMdp));
                        xmlw.WriteEndElement();
                    }
                }
                xmlw.WriteEndElement();
                xmlw.Flush();
                xmlw.Close();
                f.Close();
    Je sais ce n'est pas très beau à voir , mais je découvre XmlTextWriter et comme l'indique Writer ce n'est pas la bonne voie pour sauter les balise Id1 et Mdp1.
    Comment je pourrais faire pour ne pas supprimer les value de Id1 Mdp1??

    Si quelqu'un a un idée??
    Merci.

  2. #2
    Membre confirmé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Points : 645
    Points
    645
    Par défaut
    Donc mon problème est d"écrire après la balise </Mdp1>.
    Bonjour, pourquoi ne pas utiliser InsertAfter de la classe XmlDocument ? Je pense que cela sera plus simple que ce que tu fais ...

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Il est vrai que ca m'a l'air plus logique.
    Je vais essayer!! Merci!!!

  4. #4
    Membre confirmé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Points : 645
    Points
    645
    Par défaut
    Pense à marquer ton sujet Résolu si c'est le cas

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Hello,
    Voici le résultat si cela intéresse quelqu'un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    string contenuxml = null;
                contenuxml = File.ReadAllText(filePath);
                File.Delete(filePath);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(contenuxml);
                XmlNode root = doc.DocumentElement;
     
                XmlElement elem = doc.CreateElement("Id2");
                elem.InnerText = "test";
     
                root.InsertAfter(elem, root.LastChild);
                doc.Save(filePath);
    Merci encore Reward

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35
  2. [XML]Comment tester que mon fichier XML est comme ceci?
    Par Devil666 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2005, 13h41
  3. Réponses: 14
    Dernier message: 25/10/2004, 21h33
  4. Réponses: 4
    Dernier message: 23/10/2003, 08h03
  5. XML Schema et inclusions de fichiers XML
    Par monk31 dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 08/10/2003, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo