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 plusieurs noeuds dans un fichier xml


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut Ecrire plusieurs noeuds dans un fichier xml
    Bonjour à tous,

    J'ai un petit soucis (a mon avis, ça doit être une bêtise) avec mon fichier xml que je compose.

    Pour faire simple, je crée un nouveau xml vide et j'y ajoute plusieurs nœuds.
    Le problème actuel est que seul le dernier nœud est inscrit dedans.

    voilà un bout de code, version allégée du poblème :
    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
    Dim xmlDoc As XmlDocument = New XmlDocument()
            xmlDoc.LoadXml("<personnes> </personnes>")
            Dim elemPers As XmlElement
            Dim elemNom As XmlElement
            Dim elemPrenom As XmlElement
     
            elemPers = xmlDoc.CreateElement("personne")
            elemNom = xmlDoc.CreateElement("nom")
            elemPrenom = xmlDoc.CreateElement("prenom")
     
     
            elemNom.InnerText = "toto"
            elemPrenom.InnerText = "toto"
     
            elemPers.AppendChild(elemNom)
            elemPers.AppendChild(elemPrenom)
            xmlDoc.DocumentElement.AppendChild(elemPers)
     
            elemNom.InnerText = "tutu"
            elemPrenom.InnerText = "tutu"
     
            elemPers.AppendChild(elemNom)
            elemPers.AppendChild(elemPrenom)
            xmlDoc.DocumentElement.AppendChild(elemPers)
     
            xmlDoc.Save("test.xml")
    Je voudrais donc avoir 2 "personne" mais dans mon xml il n'y a que la dernière.

    Si vous avez besoin de précisions, n'hésitez pas

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    sous la racine "personnes" de ton XML, tu ne crées qu'un seul parent "personne" et le code ne fait que modifier la valeur de ses deux enfants, en leur donnant naturellement la dernière connue.
    En l'état, il faut créer, à chaque personne, l'arborescence complète :
    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
            Dim xmlDoc As XmlDocument = New XmlDocument()
            xmlDoc.LoadXml("<personnes> </personnes>")
            Dim elemPers As XmlElement
            Dim elemNom As XmlElement
            Dim elemPrenom As XmlElement
     
            ' 1ère personne :
            elemPers = xmlDoc.CreateElement("personne")
            elemNom = xmlDoc.CreateElement("nom")
            elemPrenom = xmlDoc.CreateElement("prenom")
     
     
            elemNom.InnerText = "toto"
            elemPrenom.InnerText = "toto"
     
            elemPers.AppendChild(elemNom)
            elemPers.AppendChild(elemPrenom)
            xmlDoc.DocumentElement.AppendChild(elemPers)
     
            ' 2ième personne :
            elemPers = xmlDoc.CreateElement("personne")
            elemNom = xmlDoc.CreateElement("nom")
            elemPrenom = xmlDoc.CreateElement("prenom")
     
            elemNom.InnerText = "tutu"
            elemPrenom.InnerText = "tutu"
     
            elemPers.AppendChild(elemNom)
            elemPers.AppendChild(elemPrenom)
            xmlDoc.DocumentElement.AppendChild(elemPers)
     
            ' 3ième personne :
            elemPers = xmlDoc.CreateElement("personne")
            elemNom = xmlDoc.CreateElement("nom")
            elemPrenom = xmlDoc.CreateElement("prenom")
     
            elemNom.InnerText = "titi"
            elemPrenom.InnerText = "titi"
     
            elemPers.AppendChild(elemNom)
            elemPers.AppendChild(elemPrenom)
            xmlDoc.DocumentElement.AppendChild(elemPers)
     
            xmlDoc.Save("test.xml")

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut
    impec !

    merci m'sieur, c'est exactement la réponse à ma question !

    Un tout grand merci.

    Par ailleurs, je cherche aussi à pouvoir rajouter un id à ma personne exemple :

    <personne id=AB123>
    <nom>toto</nom>
    </personne>

    merci

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    je croit qu'il faut que tu crée un attribut

    il y a cette méthode http://msdn.microsoft.com/fr-fr/library/y1ah1zbw.aspx

    ça doit être du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     elemPers.SetAttribute("id","AB123");

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 46
    Par défaut
    en effet, c'est bien cela !

    Merci beaucoup

    Topic à clôturer

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

Discussions similaires

  1. [JAXB] Plusieurs fois le même noeud dans un fichier XML
    Par electrovolt dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/07/2012, 15h38
  2. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  3. Declaration plusieurs DTD dans un fichier XML
    Par sebastien2222 dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2006, 14h34
  4. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

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