Lendo XML de uma String


Em determinados momentos quando não temos um arquivo XML fisicamente criado, mas temos seu conteúdo, qual foi recuperado de algum método ou mesmo uma Query SQL em uma String e necessitamos carregar essa String (o conteúdo XML) em um DataSet, podemos utilizar a classe StringReader juntamente com o método ReadXml do Dataset para isso.

Esta classe está contida dentro do Namespace System.IO e implementa a classe TextReader para é utilizada para ler uma sequencia de caracteres.

Temos abaixo a estrutura do conteúdo XML que iremos carregar no nosso Dataset e posteriormente atribuí-lo à um DataGrid: 

Agora veremos o código necessário para ler a String e carregarmos no Dataset. Temos que importar o seguinte Namespace:

1
 
Imports System.IO
 

Dentro do evento Load do nosso WebForm fazermos:

1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub Page_Load(ByVal sender As Object, ByVal e As _
    System.EventArgs) Handles MyBase.Load
 
    Dim xml As String
    Dim ds As New Dataset
 
    xml = “<Pessoal><Funcionario><ID>00011</ID><Nome>Jose</Nome></Funcionario></Pessoal>”
 
    ds.ReadXml(New StringReader(xml), XmlReadMode.Auto)
 
    Me.DataGrid1.DataSource = ds
    Me.DataGrid1.DataBind()
End Sub
 

Chamo a atenção para o conteúdo atribuído à variável xml, que uma parte foi ocultada por questões de espaço. Através do método ReadXml do Dataset, passamos uma instância da classe StringReader que recebe no seu construtor a String XML que queremos ler. Informamos também no segundo parâmetro o XmlReadMode, que especifica como os dados em XML são lidos dentro do Dataset, e por fim, definimos a propriedade DataSource do DataGrid com o nosso Dataset já carregado e invocamos o método DataBind do DataGrid para carregá-lo.

Publicidade

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s