Vb.net et xml

Résolu
cs_aurel16 Messages postés 75 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 29 octobre 2010 - 3 févr. 2008 à 20:33
cs_aurel16 Messages postés 75 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 29 octobre 2010 - 4 févr. 2008 à 20:36
Bonjour,

Je suis en train de développer un petit logiciel en vb.net. J'aurai voulu créer une petite base de données avec deux entrées tel que un élément correpond à une valeur et je veux pouvoir récuperer cette valeur sous mon programme. Je pense que le xml couplé avec vb.net peut me satisfaire. Voila mon code xml ( base.xml ) :

<?xml version="1.0" encoding="utf-8" ?>
<logiciel>
<voiture>
<name type="260 ch">ferrari</name>
<name type="210 ch">renault</name>
</voiture>
</logiciel>

Comment faire pour afficher cela sous les noms des voitures sous un listbox ? Je voudrais aussi que lorsque que l'on clique sur le nom, la valeur de la puissance apparaisse.

merci
bonne soiree

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 févr. 2008 à 22:01
Salut

Utilise XPATH

exemple
/logiciel/voiture/name --> (ferrari et renault)
/logiciel/voiture/name[1][@type] --> 210ch

Tu peux utiliser le xmldatasource
http://msdn2.microsoft.com/fr-fr/library/z6c0928s(VS.80).aspx

Bon courage
3
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
4 févr. 2008 à 11:48
Salut,

Voici un exemple complet sans utilisation de XPath (plus simple à mon gout). Une solution parmis bcp d'autres.

1. Ajouter ListBox1 et Label1 sur une form

2. Création d'une classe décrivant une voiture:
    Public Class Voiture
        Public Nom As String
        Public Puissance As String

        ' Pour que le nom s'affiche dans la ListBox:
        Public Overrides Function ToString() As String
            Return Nom
        End Function
    End Class

3. Chargement du document XML et affichage des éléments:
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Charger le document XML
        Dim doc As New Xml.XmlDocument
        doc.Load("C:\essai.xml")
        ' Parcourir chaque éléments se trouvant dans la node "Voiture"
        For Each elem As Xml.XmlElement In doc.DocumentElement("voiture").ChildNodes
            ' Création d'une classe voiture et attribution des valeurs 
            Dim voiture As New Voiture
            voiture.Nom = elem.InnerText   ' Valeur
            voiture.Puissance = elem.GetAttribute("type")   ' Attribut "Type"
            ' Ajout à la ListBox
            ListBox1.Items.Add(voiture)
        Next

    End Sub

4. Affichage de la puissance lorsque on clique sur l'un des Item de la ListBox

   Private Sub List_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles List.SelectedIndexChanged
        ' Récupérer l'objet Voiture à partir de l'élément de la ListBox
        Dim voiture As Voiture = ListBox1.SelectedItem
        ' Afficher la puissance dans lblPuiss
        Label1.Text = voiture.Puissance
    End Sub

Et voilà, ça fonctionne parfaitement
3
cs_aurel16 Messages postés 75 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 29 octobre 2010
3 févr. 2008 à 22:46
j'utilise ce code source :

Dim xpathDoc As XPathDocument
Dim xmlNav As XPathNavigator
Dim xmlNI As XPathNodeIterator
xpathDoc = New XPathDocument("c:\base.xml")
xmlNav = xpathDoc.CreateNavigator()
xmlNI = xmlNav.Select("/logiciel/voiture")
While (xmlNI.MoveNext())
listbox1.items.add(xmlNI.Current.Value)
End While

Mais je n'arrive qu'à afficher les marques de voiture comment affiche leur puissance ?

merci pour votre réponse
0
cs_aurel16 Messages postés 75 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 29 octobre 2010
4 févr. 2008 à 20:36
j'y suis parvenu, merci beaucoup pour votre aide !
0
Rejoignez-nous