Listox et xml

Résolu
Signaler
Messages postés
26
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2010
-
Messages postés
26
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2010
-
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

Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
6
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.
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
6
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
Messages postés
26
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2010

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 :)
Messages postés
26
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2010

Ok merci beaucoup pour tout ;)