Listox et xml

Résolu
goredo Messages postés 26 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 4 mars 2010 - 2 févr. 2010 à 14:47
goredo Messages postés 26 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 4 mars 2010 - 3 févr. 2010 à 16:09
bonjour,
je suis en stage dans une entreprise et je voudrais récuperer une chaine dans mon xml,ici :

<?xml version="1.0" encoding="utf-8" ?>

<!-- description des objet par Types -->
<!-- -->
<quincaillerie>
<objet Type="Ferrure">
<Texts>
init
<Language>Fr</Language>
<Dim_A>(A) Dim_A </Dim_A>
</Texts>
<Ref>262.26.246</Ref>
</objet>
</quincaillerie>

j aimerais ici récupérer le contenu de la balise ref et la mettre dans une liste box.
Cependant,ce fichier xml n'est qu'un extrait et il contient plusieurs ref et je pense qu'il me faut une boucle pour ajouter a ma lisbox toute les reférence.

j'arrive à les récupérer dans une msgbox mais ce n'est pas le but rechercher ( et si 1000 ref 1000 msgbox heu... ^^ )

si quelqu'un peut m'aider =)

4 réponses

cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
3 févr. 2010 à 15:58
Re,

OpenFile("monFich.xml")


ce code sans autre indication cherche automatiquement le fichier indiqué dans le Debug de ton application.
Si ce fichier est stocké ailleurs, là il faut indiquer le chemin pour que l'application sache où le trouver.
3
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
3 févr. 2010 à 15:01
Bonjour,
imaginons que la source XML soit de la construction suivante :

<?xml version="1.0" encoding="utf-8" ?>
<!-- description des objet par Types -->
<!-- -->
<quincaillerie>
  <objet Type="Ferrure">
    <Texts>
      init
      <Language>Fr</Language>
      <Dim_A>(A) Dim_A </Dim_A>
    </Texts>
    <Ref>262.26.246</Ref>
  </objet>
  <objet Type="Paumelles">
    <Texts>
      init
      <Language>Fr</Language>
      <Dim_A>(A) Dim_A </Dim_A>
    </Texts>
    <Ref>1.1</Ref>
  </objet>
  <objet Type="Fer">
    <Texts>
      init
      <Language>Fr</Language>
      <Dim_A>(A) Dim_A </Dim_A>
    </Texts>
    <Ref>2.2</Ref>
  </objet>
</quincaillerie>


On peut passer par le DOM avec le code suivant :

    Dim ds As DataSet = New DataSet
    Dim factBindingSource As BindingSource = New BindingSource

    Private Sub OpenFile(ByVal fichier As String)

        '*** Représente un document XML en mémoire et charge les données XML spécifiées
        Dim doc As XmlDocument = New XmlDocument()
        doc.Load(fichier)

        '*** Sélectionne une liste de nœuds correspondant à l'expression XPath recherchée,
        '    et les stocke dans une collection 
        Dim nodeList As XmlNodeList
        Dim root As XmlElement = doc.DocumentElement
        nodeList = root.SelectNodes("/quincaillerie/objet/Ref")

        '*** Reste à les récupérer dans la ListBox.
        For Each ref As XmlNode In nodeList
            ListBox1.Items.Add(ref.InnerXml)
        Next

    End Sub


Et sans oublier d'importer l'espace de noms XML, comme suit :

Imports System.Xml


Et d'appeler cette sub d'une façon ou d'une autre comme par exemple un Button :

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '*** "fichier" est le nom du fichier (SANS oublier son chemin).
        OpenFile("monFich.xml")
    End Sub
0
goredo Messages postés 26 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 4 mars 2010
3 févr. 2010 à 15:29
merci beaucoup pour cette répons
Cependant pour ce qui est de définir la source de mon xml il va la chercher dans :

C:\Users\Admin\AppData\Local\Temporary Projects\WindowsApplication1\bin\Debug

aurais-je mal définie le chemin à emprunter?

merci beaucoup encore une fois :)
0
goredo Messages postés 26 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 4 mars 2010
3 févr. 2010 à 16:09
Ok merci beaucoup pour tout ;)
0