Você está na página 1de 3

Para ler um arquivo XML para um DataSet em VB.

NET,
você pode usar o seguinte código:
VB.Net
Imports System.IO
Imports System.Xml

Public Class Form1

Private DataSet1 As DataSet

Private Sub Form1_Load(ByVal sender As Object, ByVal e As


EventArgs) Handles MyBase.Load
' Cria um novo `DataSet`
DataSet1 = New DataTable()

' Carrega os dados do arquivo XML


LoadData()
End Sub

Private Sub LoadData()


' Obtém o caminho do arquivo XML
Dim path As String = "C:\dados\nfe.xml"

' Cria um novo `XmlTextReader`


Dim reader As XmlTextReader = New XmlTextReader(path)

' Percorre o arquivo XML


While reader.Read()
' Verifica o nome da tag
Dim name As String = reader.Name

' Se a tag for "Item", adiciona uma nova linha ao


`DataSet`
If name = "Item" Then
' Adiciona uma nova linha ao `DataSet`
DataSet1.Tables.Add()

' Obtém os valores das tags


Dim codigo As String = reader.ReadValue()
Dim descricao As String = reader.ReadValue()
Dim quantidade As Integer = reader.ReadValue()
Dim valorUnitario As Decimal = reader.ReadValue()
Dim valorTotal As Decimal = reader.ReadValue()

' Define os valores nas colunas do `DataSet`


DataSet1.Tables(DataSet1.Tables.Count -
1).Columns("Codigo").Value = codigo
DataSet1.Tables(DataSet1.Tables.Count -
1).Columns("Descricao").Value = descricao
DataSet1.Tables(DataSet1.Tables.Count -
1).Columns("Quantidade").Value = quantidade
DataSet1.Tables(DataSet1.Tables.Count -
1).Columns("ValorUnitario").Value = valorUnitario
DataSet1.Tables(DataSet1.Tables.Count -
1).Columns("ValorTotal").Value = valorTotal
End If
End While
reader.Close()
End Sub
End Class
Use o código com cuidado. Saiba mais

Este código funciona da seguinte forma:

 No evento Load do formulário, o código cria um novo DataSet.


 O código chama o método LoadData() para carregar os dados do arquivo XML.

No método LoadData(), o código cria um novo XmlTextReader para ler o arquivo


XML. Em seguida, o código percorre o arquivo XML, linha por linha. Para cada linha,
o código verifica o nome da tag. Se a tag for "Item", o código adiciona uma nova linha
ao DataSet.

Para cada linha do DataSet, o código obtém os valores das tags codigo, descricao,
quantidade, valorUnitario e valorTotal. Em seguida, o código define esses valores
nas colunas correspondentes do DataSet.

Ao executar este código, o DataSet terá a seguinte estrutura:

Table: Item
Codigo: 001234
Descricao: Produto 1
Quantidade: 10
ValorUnitario: 10,00
ValorTotal: 100,00

Table: Item
Codigo: 001235
Descricao: Produto 2
Quantidade: 20
ValorUnitario: 20,00
ValorTotal: 400,00

Você também pode usar o método DataSet.ReadXml() para carregar um arquivo XML
em um DataSet. Este método aceita um argumento que especifica a fonte do XML. Por
exemplo, para carregar o arquivo nfe.xml em um DataSet, você pode usar o seguinte
código:

VB.Net
Imports System.IO
Imports System.Xml

Public Class Form1

Private DataSet1 As DataSet

Private Sub Form1_Load(ByVal sender As Object, ByVal e As


EventArgs) Handles MyBase.Load
' Carrega os dados do arquivo XML
DataSet1.ReadXml("C:\dados\nfe.xml")
End Sub
End Class
Use o código com cuidado. Saiba mais
Este código produzirá o mesmo resultado que o código anterior.

Você também pode gostar