Application pour lire, faire une ajout dans un fichier xml

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 146 fois - Téléchargée 30 fois

Contenu du snippet

ce code simple permet d'avoir de bonne base pour lire et ajouter des éléments d'un fichier XML.

Source / Exemple :


Imports System.Xml

Namespace AppXML

    Public Class Form1
        Inherits System.Windows.Forms.Form

        Private documentXML As XmlDocument
        Private noeuxRacine As XmlNode
        Private EnfantNoeux As XmlNodeList

        Private elementXML As XmlElement
        Private texteXML As XmlText

        Private sTousLesEnfants As String
        Private Const CHEMIN As String = "C:\Formules.xml"
        Private sNouvelleForm As String

#Region " Code généré par le Concepteur Windows Form "

        Public Sub New()
            MyBase.New()

            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()

            'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

        End Sub

        'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If Not (components Is Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub

        'Requis par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer

        'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
        'Ne la modifiez pas en utilisant l'éditeur de code.
        Friend WithEvents Label1 As System.Windows.Forms.Label
        Friend WithEvents TxtXMLAjout As System.Windows.Forms.TextBox
        Friend WithEvents BtnLire As System.Windows.Forms.Button
        Friend WithEvents BtnAjout As System.Windows.Forms.Button
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
            Me.BtnLire = New System.Windows.Forms.Button
            Me.BtnAjout = New System.Windows.Forms.Button
            Me.TxtXMLAjout = New System.Windows.Forms.TextBox
            Me.Label1 = New System.Windows.Forms.Label
            Me.SuspendLayout()
            '
            'BtnLire
            '
            Me.BtnLire.Location = New System.Drawing.Point(32, 72)
            Me.BtnLire.Name = "BtnLire"
            Me.BtnLire.Size = New System.Drawing.Size(112, 32)
            Me.BtnLire.TabIndex = 1
            Me.BtnLire.Text = "LireXML"
            '
            'BtnAjout
            '
            Me.BtnAjout.Location = New System.Drawing.Point(152, 72)
            Me.BtnAjout.Name = "BtnAjout"
            Me.BtnAjout.Size = New System.Drawing.Size(112, 32)
            Me.BtnAjout.TabIndex = 2
            Me.BtnAjout.Text = "AJoutXML"
            '
            'TxtXMLAjout
            '
            Me.TxtXMLAjout.Location = New System.Drawing.Point(48, 32)
            Me.TxtXMLAjout.Name = "TxtXMLAjout"
            Me.TxtXMLAjout.Size = New System.Drawing.Size(176, 20)
            Me.TxtXMLAjout.TabIndex = 3
            Me.TxtXMLAjout.Text = ""
            '
            'Label1
            '
            Me.Label1.Location = New System.Drawing.Point(48, 8)
            Me.Label1.Name = "Label1"
            Me.Label1.Size = New System.Drawing.Size(184, 24)
            Me.Label1.TabIndex = 4
            Me.Label1.Text = "Formule de politesse"
            '
            'Form1
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(292, 125)
            Me.Controls.Add(Me.Label1)
            Me.Controls.Add(Me.TxtXMLAjout)
            Me.Controls.Add(Me.BtnAjout)
            Me.Controls.Add(Me.BtnLire)
            Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
            Me.Name = "Form1"
            Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
            Me.Text = "Gestionnaire XML"
            Me.ResumeLayout(False)

        End Sub

#End Region

        Private Sub BtnLire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLire.Click

            Dim iIndexe As Integer

            Try
                documentXML = New XmlDocument

                documentXML.Load(CHEMIN)

                noeuxRacine = documentXML.DocumentElement()

                EnfantNoeux = noeuxRacine.ChildNodes

                iIndexe = 0

                While (iIndexe < EnfantNoeux.Count)

                    MsgBox(EnfantNoeux.ItemOf(iIndexe).InnerText)
                    iIndexe = iIndexe + 1

                End While

            Catch ex As XmlException

                MessageBox.Show(ex.Message, "Problème XML", MessageBoxButtons.OK, MessageBoxIcon.Error)

            Catch ex As Exception

                MessageBox.Show(ex.Message, "Problème", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End Try

        End Sub

        Private Sub BtnAjout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjout.Click

            Try

                sNouvelleForm = TxtXMLAjout.Text

                documentXML = New XmlDocument

                documentXML.Load(CHEMIN)

                EnfantNoeux = documentXML.GetElementsByTagName("Intro")

                Dim i As Integer

                For i = 0 To EnfantNoeux.Count - 1

                    If EnfantNoeux.Item(i).InnerText = sNouvelleForm Then
                        MessageBox.Show("Element déjà ajouté", "Ajout", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Exit Sub
                    End If

                Next

                elementXML = documentXML.CreateElement("Intro")
                texteXML = documentXML.CreateTextNode(sNouvelleForm)

                documentXML.DocumentElement.AppendChild(elementXML)
                documentXML.DocumentElement.LastChild.AppendChild(texteXML)

                documentXML.Save(CHEMIN)

                MessageBox.Show("Ajout effectué", "Ajout", MessageBoxButtons.OK, MessageBoxIcon.Information)

            Catch ex As XmlException

                MessageBox.Show(ex.Message, "Problème XML", MessageBoxButtons.OK, MessageBoxIcon.Error)

            Catch ex As Exception

                MessageBox.Show(ex.Message, "Problème", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End Try
        End Sub

    End Class

End Namespace

A voir également

Ajouter un commentaire

Commentaires

chasseurdedemon
Messages postés
60
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2010

dsl pour le msg d'audessus j'avais pas vue qu'il y avait des boutons et un texbox pour faire le travail
chasseurdedemon
Messages postés
60
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2010

est-ce que quelqu'un peux mettre un exemple d'utilisation
merci
chasseurdedemon
Messages postés
60
Date d'inscription
mardi 23 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2010

bonjour,
je suis débutant et je comprend pas la différence entre les fichier INI et xml, est-ce que quelqu'un peut m'expliquer?

parce que c'est plus simple d'y accéder à un fichier ini.

ensuite le code donner est à mettre dans une forme ou un module ?
cs_Benouille
Messages postés
216
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
7 septembre 2007
1
ah cyber ice, je comprends mieux pourquoi t'étais un peu froid alors ;) ++
cyberice67
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Salut Benouille,

C'est pas cyber brice mais cyberICE ;)

Pour ce qui est de Elmagico c'est vrai que j'étais un peu sec et j'm'en excuse... Devais pas être dans mon assiette ce jour là :)

Sans rancune...

Cyberice67

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.