Module qui gère le xml

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 385 fois - Téléchargée 34 fois

Contenu du snippet

à la réponse de plusieurs question sur le forum, voici un module, qui gère le XML de la façon la plus simple possible

faut ajouter une référence sur system.xml.dll

Source / Exemple :


Imports System.Xml

#Region "Exemple de struture dans le fichier XML"
'<?xml version="1.0" encoding="utf-8" ?> 
'<CalendrierTCC>
'	<Aujourdhui>Jour</Aujourdhui>
'	<jour>
'		<Dimanche>D</Dimanche>
'		<Lundi>L</Lundi>
'		<Mardi>M</Mardi>
'		<Mercredi>M</Mercredi>
'		<Jeudi>J</Jeudi>
'		<Vendredi>V</Vendredi>
'		<Samedi>S</Samedi>	
'       <test>
'           <valeur>test</valeur>
'       </test>
'	</jour>
'	<mois>
'		<Janvier>Janvier</Janvier>
'		<Fevrier>Février</Fevrier>
'		<Mars>Mars</Mars>
'		<Avril>Avril</Avril>
'		<Mai>Mai</Mai>
'		<Juin>Juin</Juin>
'		<Juillet>Juillet</Juillet>		
'		<Aout>Août</Aout>
'		<Septembre>Septembre</Septembre>
'		<Octobre>Octobre</Octobre>
'		<Novembre>Novembre</Novembre>
'		<Decembre>Décembre</Decembre>
'	</mois>
'</CalendrierTCC>
#End Region 'Exemple de struture dans le fichier XML

Module XML
#Region "Variable"
    Public tableau() As String
    Private root As XmlNode
#End Region 'Variable
#Region "Ouverture de fichier"
    'Peut-être relatif (../dossier) ou absolu (C:/.....)
    Public Function openXML(ByVal fichier As String)
        Dim XMLStruct As New XmlDocument

        XMLStruct.Load(fichier)
        root = XMLStruct.DocumentElement

    End Function
#End Region 'Ouverture de fichier

#Region "lire un reccord avec le nom de la clé voulu"
    'comme dans le fichier XML d'emple, je pourrais demander "Aujourdhui"
    Public Function lectureXML(ByVal valeur As String) As String
        Dim temp As String
        Dim position As Integer

        temp = root.Item(valeur).InnerText
        position = InStr(temp, vbCr)
        If position <> 0 Then
            Return (Mid(temp, 1, position - 1))
        Else
            Return (temp)
        End If
    End Function
#End Region 'lire un reccord avec le nom de la clé voulu

#Region "lire un reccord, mais avec le chemin de clé pour lire la clé voulu"
    'comme dans le fichier XML d'emple, je pourrais demander :
    'parent(0) = jour
    'parent(1) = test
    'valeur = valeur
    Public Function lectureXML(ByVal parent() As String, ByVal valeur As String) As String
        Dim i As Integer
        Dim temp As String
        Dim position As Integer
        Dim xmlTemp As XmlNode

        xmlTemp = root.Item(parent(0))
        If isOpenXML(xmlTemp) Then
            For i = 1 To UBound(parent)
                xmlTemp = xmlTemp.Item(parent(i))
            Next i
            temp = xmlTemp.Item(valeur).InnerText
            position = InStr(temp, vbCr)
            If position <> 0 Then
                Return (Mid(temp, 1, position - 1))
            Else
                Return (temp)
            End If
        End If
    End Function
#End Region 'lire un reccord, mais avec le chemin de clé pour lire la clé voulu

#Region "Vérifie s'il est déjà ouvert"
    Public Function isOpenXML(ByVal xmlTemp As XmlNode) As Boolean
        Dim temp As String
        Try
            temp = xmlTemp.InnerText
            Return True
        Catch
            Return False
        End Try
    End Function
#End Region 'Vérifie s'il est déjà ouvert
End Module

Conclusion :


j'espère que ça en aidera plusieurs.

pour le tableau qu'on doit se servir pour faire un chemin dans le fichier, il se trouve déjà dans la class

Voici un appel de la class

Public Sub langue(ByVal lang As String)
Dim mois As Integer
Patienter.RaisonPatienter(1)
XML.openXML("XML/TCCCalendrier/" & lang & ".xml")
ReDim XML.tableau(0)
XML.tableau(0) = "mois"

If Combo1.Text <> "" Then
mois = 0
While Combo1.Text <> Combo1.Items(mois)
mois = mois + 1
End While
Else
mois = Month(Now)
End If
Combo1.Items.Clear()
Me.Combo1.Items.AddRange(New Object() {XML.lectureXML(XML.tableau, "Janvier"), XML.lectureXML(XML.tableau, "Fevrier"), XML.lectureXML(XML.tableau, "Mars"), XML.lectureXML(XML.tableau, "Avril"), XML.lectureXML(XML.tableau, "Mai"), XML.lectureXML(XML.tableau, "Juin"), XML.lectureXML(XML.tableau, "Juillet"), XML.lectureXML(XML.tableau, "Aout"), XML.lectureXML(XML.tableau, "Septembre"), XML.lectureXML(XML.tableau, "Octobre"), XML.lectureXML(XML.tableau, "Novembre"), XML.lectureXML(XML.tableau, "Decembre")})
Combo1.Text = Combo1.Items(mois)
XML.tableau(0) = "jour"
Me.lblTxtSem(0).Text = XML.lectureXML(XML.tableau, "Dimanche")
Me.lblTxtSem(1).Text = XML.lectureXML(XML.tableau, "Lundi")
Me.lblTxtSem(2).Text = XML.lectureXML(XML.tableau, "Mardi")
Me.lblTxtSem(3).Text = XML.lectureXML(XML.tableau, "Mercredi")
Me.lblTxtSem(4).Text = XML.lectureXML(XML.tableau, "Jeudi")
Me.lblTxtSem(5).Text = XML.lectureXML(XML.tableau, "Vendredi")
Me.lblTxtSem(6).Text = XML.lectureXML(XML.tableau, "Samedi")
Me.Command1.Text = XML.lectureXML("Aujourdhui")
End Sub

A voir également

Ajouter un commentaire Commentaires
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
depuis le framework 2.0 est sorti tout comme le framework 3.5, oui, il est possible de faire plus simple, mais ça va encore fonctionner
Messages postés
111
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
29 décembre 2008

Salut,
Donc c'est quoi ta réponse, après plus d'un an Devkell ?
A ton avis, c’est un bon code source pour le XML ?
Il y a t’il plus simple, etc.. ?
Merci
@+
Messages postés
1
Date d'inscription
mardi 13 septembre 2005
Statut
Membre
Dernière intervention
29 janvier 2007

Merci pour le code. je vient de le consulter je vais le tester et après vous aurez de ma réponse
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
elle est avec .Net

dans ton solution explorer tu as Reference

clic droit dessus et add reference
puis cherche system.xml.dll, c'est une référence .Net

fait select ou double clic dessus et c,est fait
Messages postés
1
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
22 décembre 2004

Bonjour,

Merci pour ce code qui est apparemment est rare à trouver !
J'ai une question bête : comment fait-on pour référencer system.xml.dll ? Où trouve-t-on cette dll ?
Afficher les 8 commentaires

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.