Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João M.

[Resolvido] Preencher ListBox com XML

Recommended Posts

Olá, estou precisando de uma ajudinha de vocês, desenvolvo Web a alguns anos, e estou começando (aprender) agora Visual Basic, é simples o que eu preciso, porém não estou conseguindo fazer..

 

Tenho um arquivo XML cuja estrutura é assim:

<?xml version='1.0'?>
<doc>

<waypoints>
<w>80,90,7</w>
<w>81,90,7</w>
<w>82,90,7</w>
<w>83,90,7</w>
</waypoints>

<deposit>
<d>80,90,8</d>
<d>81,90,8</d>
<d>82,90,8</d>
</deposit>

<configuration>
<exact>checked</exact>
<percent>unchecked</percent>
</configuration>

</doc>

 

O que eu preciso:

 

- Que o VB leia o arquivo .xml, e pegue todos os valores dos elementos <w> que estão dentro de <waypoints> e jogue em um listbox.

 

- Que o VB leia o arquivo .xml, e pegue apenas o valores que estão dentro de <radio> e <percent> e fiquem cada um armazenados em uma variavel (dim radio as String e dim percent as String)

 

 

Eu até li uns tutoriais de como ler o arquivo xml e tudo mais, so que na hora de manipular pra pegar os valores dos elementos especificos que eu quero eu não consigo fazer funcionar.

 

Tenho o seguinte codigo VB:

 

       Dim reader As Xml.XmlTextReader = New Xml.XmlTextReader("C:\Users\webpremmium\Desktop\wpts2.xml")
       Dim elementos As ArrayList = New ArrayList
       Do While (reader.Read())
           Select Case reader.NodeType
               Case Xml.XmlNodeType.Element
                   If reader.HasAttributes Then 'Se existirem atributos
                           While reader.MoveToNextAttribute
                           elementos.Add(reader.Value)
                           End While

                   End If
               Case Xml.XmlNodeType.Text
                   'Incluir o texto do elemento no ArrayList
                   elementos.Add(reader.Value)
           End Select
       Loop

       Dim num As String
       For Each num In elementos
           ListBox1.Items.Add(num)
       Next

 

Mas ta pegando o valor de todos os elementos que tem no xml.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conseguiu Resolver a parte de pegar apenas o que tiver dentro de waypoints e jogar no listbox, ficou assim

 

Imports System.Xml
Imports System.Xml.Linq

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim doc As New XmlDocument()
       doc.Load("C:\Users\webpremmium\Desktop\wpts2.xml")
       Dim nameList As XmlNodeList = doc.SelectNodes("/doc/waypoints/w")
       For Each name As XmlNode In nameList
           ListBox1.Items.Add(name.InnerText)
       Next
   End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.