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

VB.NET Discussion :

Ecrire à la suite d'un fichier XML [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut Ecrire à la suite d'un fichier XML
    Bonjour à tous,

    je débute en VB . J'ai un petit programme en mode console qui demande les nom et prénom de personnes. Je cherche à enregistrer les données des personnes dans un fichier XML.

    Cela fonction tant que je ne quitte pas mon programme. Si je quitte et rouvre à nouveau mon programme l'enregistrement se fait mais pas à la suite de ce qui a déjà été encodé -> Perte d'infos.

    Je dois avoir loupé un truc pourtant je charge mon fichier xml au début.

    Quelqu'un aurait-il une idée ?

    Merci

    Voici mon code :

    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
            Dim choix As String
            Dim Nom As String
            Dim Prenom As String
            Dim ListePersonne As ArrayList = New ArrayList()
            Dim UnePersonne As Personne
     
            Do
                Console.WriteLine("1 - Créer une nouvelle personne ")
                Console.WriteLine("0 - Quitter ")
                choix = Console.ReadLine()
                If (choix = "exit") Then
                    Exit Do
                End If
                Select Case choix
                    Case 0
                        Exit Do
                    Case 1
                        Console.Write("Nom : > ")
                        Nom = Console.ReadLine()
                        Console.Write("Prénom : > ")
                        Prenom = Console.ReadLine()
                        UnePersonne = New Personne(Nom, Prenom)
                        ListePersonne.Add(UnePersonne)
                    Case Else
                        Exit Select
                End Select
            Loop
     
     
     
            ' Le fichier XML
            ' --------------
            ' 1° Création d'une nouvelle instance
            Dim XmlDoc As XmlDocument = New XmlDocument()
            Dim FileName As String = "MonTestXML.xml"
     
            ' 2° Vérification de l'existance du fichier
            If File.Exists(FileName) Then
                XmlDoc.Load(FileName.ToString())
            End If
     
            Dim Root As XmlElement
            Dim elementBook As XmlNode
            Dim elementNom As XmlNode
            Dim elementPrenom As XmlNode
     
            Root = XmlDoc.CreateElement("Library")
     
            For Each UnePersonne In ListePersonne
                ' Creation de la balise Book
                elementBook = XmlDoc.CreateElement("Book")
     
                ' Creation de la balise Nom
                elementNom = XmlDoc.CreateElement("Nom")
                elementNom.InnerText = UnePersonne.Nom
     
                ' Creation de la balise Prenom
                elementPrenom = XmlDoc.CreateElement("Prenom")
                elementPrenom.InnerText = UnePersonne.Prenom
     
                elementBook.AppendChild(elementNom)
                elementBook.AppendChild(elementPrenom)
                Root.AppendChild(elementBook) ' Ajout après le noeud Book
            Next
            If Not File.Exists(FileName) Then
                XmlDoc.AppendChild(Root)
            End If
            XmlDoc.Save(FileName)
            MsgBox("REUSSI")
     
        End Sub

  2. #2
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut
    Je viens de trouver la solution.

    Il faut en fait rechercher le dernier noeud et ajouter les nouvelles données à la suite de ce dernier noeud.

    Ce qui se fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
            If Not File.Exists(FileName) Then
                XmlDoc.AppendChild(Root)
            Else
                XmlDoc.LastChild.AppendChild(Root)
            End If
    ...
    Merci

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

Discussions similaires

  1. Ecrire à la suite d'un fichier
    Par SonnyFab dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/09/2010, 11h59
  2. Ecrire à la suite d'un fichier txt
    Par scriptman83 dans le forum VBScript
    Réponses: 3
    Dernier message: 23/02/2009, 14h20
  3. ecrire à la suite d'un fichier
    Par bobyboby dans le forum Débuter
    Réponses: 3
    Dernier message: 24/09/2008, 11h42
  4. Ecrire à la suite d'un fichier
    Par ramon.dekker dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 23/09/2008, 20h24
  5. Réponses: 2
    Dernier message: 31/07/2006, 16h26

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