Écriture d'un Xml [Résolu]

Signaler
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014
-
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
-
Bonjours je travail présentement sur un petit project pour un amis et je rencontre un problème , et oui.. encore , celui ci est le suivant , je me sert dun fichier XML pour sauvarger des informations de la form (Textbox1 Textbox2 ect..) parconte je ne sais point comment écrire plus d'une ligne dans un XML , Voici le code que j'utilise :

   Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)

            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "yes"



            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")


Quelqun a une idée comment faire pour ajouté plus qu'une ligne ?? Dans l'exemple ci dessu on peut voir clairement qu'on écrit dans le fichier XML <Remember>yes</Remember> , j'aimerais pouvoir mettre <Remember2>AutreText</Remember2> en dessou de celui ci. J'espere avoir été clair Et pardonez moi encore une fois pour mes faute de francais

9 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Je ne comlprend pas pourquoi le fichier reste ouvert.

Sinon :
If CheckBox1.Checked = True Then
...
End IF
If CheckBox1.Checked = False Then
...
End If

Pet être remplacé par :
If CheckBox1.Checked Then
...
Else
...
End If

Avec ProcessExplorer ou équivalent pour voir si c'est ton programme qui bloque le fichier ou si c'est un AV par exemple ?

Mon site
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Après
mElement = Doc.CreateElement("Remember")
mElement.InnerText = "yes"
Doc.DocumentElement.AppendChild(mElement)
Tu mets :
mElement = Doc.CreateElement("Remember2")
mElement.InnerText = "AutreText"
Doc.DocumentElement.AppendChild(mElement)


Mon site
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

un gros merci a toi NHenry... je croyais que c'étai plus compliquer que sa
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

        If CheckBox1.Checked = True Then
            Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)

            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "yes"
            Doc.DocumentElement.AppendChild(mElement)
            mElement = Doc.CreateElement("Account")
            mElement.InnerText = TextBox1.Text
            Doc.DocumentElement.AppendChild(mElement)
            mElement = Doc.CreateElement("Pass")
            mElement.InnerText = TextBox2.Text
            Doc.DocumentElement.AppendChild(mElement)



            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")


        End If

        If CheckBox1.Checked = False Then

            Dim Doc As New XmlDocument

            Dim mElement As XmlElement

            mElement = Doc.CreateElement("Root")

            Doc.AppendChild(mElement)

            Dim xmldecl As XmlDeclaration
            xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
            Doc.InsertBefore(xmldecl, Doc.DocumentElement)


            Doc.Save("c:\UploadLabSettings.xml")


            'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

            '<?xml version="1.0"?>
            '<Root/>

            'pour le reste il vous suffit de faire 

            mElement = Doc.CreateElement("Remember")
            mElement.InnerText = "no"


            Doc.DocumentElement.AppendChild(mElement)
            Doc.Save("c:\UploadLabSettings.xml")

        End If


Quand je clique sur le checkbox pour sauvegarder tout est ok. Si je reclique dessu encore une fois j'ai un erreur me disant que le fichier est deja ouvert , cela veut donc dire qu'il ne se ferme pas correctement? Aurais tu un moyen de le fermé un coup sauvegarder? Merci beaucoup de ton aide et de ton temps.
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Et si tu essayais de n'avoir qu'une seule instance de ton fichier dans ta fonction, ça évitera les multiples Save alors qu'un seul en fin de procédure est réellement utile.

Mon site
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

Oui , J'ai essailer de seulement laissé le dernier car en effect le save d'avant n'est pas vraiment utile... Par conte j'ai toujours le meme probleme surment que le programme ne ferme pas le XML seulement jen e trouve pas comment le fermer =(
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

parfait je vais essailer. J'ai essailer de deleter le fichier manuellement quand mon programme est ouvert , impossible , si il est fermé aucun problème mais pour etre sur je vais vérifier avec ProcessExplorer bonne idée! Je vous revien la dessu
Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

j'ai esailler et rien.. par conte j'ai résusi a corrigé le problème en le fesant d'une autre facon , l'operation de l'écriture du XML se fait dans le bouton a la place , je ne sais pas pourquoi mais tout marche nikel!! Merci encore de ton aide NHenry!!
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

D'accord.

Si ton pb est résolu, pense à mettre "Réponse acceptée" sur le ou les messages qui (t'ont aidés).

Mon site