LENDO UM ARQUIVO XML
Pessoal, Bom dia!
Como eu faria para ler um XML a partir de uma determinada TAG?
O arquivo é o seguinte:
<webservicecep>
<quantidade>1</quantidade>
<retorno>
<cep>58036155</cep>
<uf>PB</uf>
<cidade>João Pessoa</cidade>
<bairro>Aeroclube</bairro>
<tipo_logradouro>Rua</tipo_logradouro>
<logradouro>Engenheiro José Jaime Gomes Pessoa Filho</logradouro>
<data>2013-04-15 18:50:18</data>
<resultado>1</resultado>
<resultado_txt>sucesso. cep encontrado local</resultado_txt>
<limite_buscas>2</limite_buscas>
<ibge_uf>25</ibge_uf>
<ibge_municipio>250750</ibge_municipio>
<ibge_municipio_verificador>2507507</ibge_municipio_verificador>
</retorno>
</webservicecep>
Então, estou querendo ler a partir da TAG RETORNO, ou seja, CEP,UF...etc..
Estou utilizando o codigo abaixo que peguei aqui na NET. mas só esta lendo as TAGS QUANTIDADE e RETORNO, dai sai do loop.
For Each X In myXML.documentElement.ChildNodes
Select Case X.nodeName
Dim xrua As String
Dim xtipo As String
Case Is = [Ô]logradouro[Ô]
xrua = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]uf[Ô]
TxtEstado = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]cidade[Ô]
TxtCidade = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]bairro[Ô]
TxtBairro = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]tipo_logradouro[Ô]
xtipo = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]resultado_txt[Ô]
TxtRetorno = UCase$(X.ChildNodes(0).Text)
If TxtRetorno = [Ô]SUCESSO - CEP COMPLETO[Ô] Then
TxtRetorno = Replace(TxtRetorno, [Ô]SUCESSO - CEP COMPLETO[Ô], [Ô]CEP VÃLIDO [Ô])
Else
End If
End Select
End If
TxtLogradouro = xtipo & [Ô] [Ô] & xrua
Next
Desde já agradeço
Como eu faria para ler um XML a partir de uma determinada TAG?
O arquivo é o seguinte:
<webservicecep>
<quantidade>1</quantidade>
<retorno>
<cep>58036155</cep>
<uf>PB</uf>
<cidade>João Pessoa</cidade>
<bairro>Aeroclube</bairro>
<tipo_logradouro>Rua</tipo_logradouro>
<logradouro>Engenheiro José Jaime Gomes Pessoa Filho</logradouro>
<data>2013-04-15 18:50:18</data>
<resultado>1</resultado>
<resultado_txt>sucesso. cep encontrado local</resultado_txt>
<limite_buscas>2</limite_buscas>
<ibge_uf>25</ibge_uf>
<ibge_municipio>250750</ibge_municipio>
<ibge_municipio_verificador>2507507</ibge_municipio_verificador>
</retorno>
</webservicecep>
Então, estou querendo ler a partir da TAG RETORNO, ou seja, CEP,UF...etc..
Estou utilizando o codigo abaixo que peguei aqui na NET. mas só esta lendo as TAGS QUANTIDADE e RETORNO, dai sai do loop.
For Each X In myXML.documentElement.ChildNodes
Select Case X.nodeName
Dim xrua As String
Dim xtipo As String
Case Is = [Ô]logradouro[Ô]
xrua = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]uf[Ô]
TxtEstado = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]cidade[Ô]
TxtCidade = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]bairro[Ô]
TxtBairro = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]tipo_logradouro[Ô]
xtipo = UCase$(X.ChildNodes(0).Text)
Case Is = [Ô]resultado_txt[Ô]
TxtRetorno = UCase$(X.ChildNodes(0).Text)
If TxtRetorno = [Ô]SUCESSO - CEP COMPLETO[Ô] Then
TxtRetorno = Replace(TxtRetorno, [Ô]SUCESSO - CEP COMPLETO[Ô], [Ô]CEP VÃLIDO [Ô])
Else
End If
End Select
End If
TxtLogradouro = xtipo & [Ô] [Ô] & xrua
Next
Desde já agradeço
vc abrindo o xml seria ssim
xrua = UCase$(X.ChildNodes(0).ChildNodes(0).Text)
TxtEstado = UCase$(X.ChildNodes(0).ChildNodes(1).Text)
TxtCidade = UCase$(X.ChildNodes(0).ChildNodes(2).Text)
TxtBairro = UCase$(X.ChildNodes(0).ChildNodes(3).Text)
xtipo = UCase$(X.ChildNodes(0).ChildNodes(4).Text)
TxtRetorno = UCase$(X.ChildNodes(0).ChildNodes(5).Text)
If TxtRetorno = [Ô]SUCESSO - CEP COMPLETO[Ô] Then
TxtRetorno = Replace(TxtRetorno, [Ô]SUCESSO - CEP COMPLETO[Ô], [Ô]CEP VÃLIDO [Ô])
End If
Caro Marcelo,
Não consegui. Daria pra voce me da um exemplo baseado no codigo que postei.
Obrigado mais uma vez!
Não consegui. Daria pra voce me da um exemplo baseado no codigo que postei.
Obrigado mais uma vez!
Ok Marcelo,
Pegando sua dica, fiz assim e resolveu meu problema.
TxtSigUFs.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(1).Text)
TxtCidade.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(2).Text)
TxtBairro.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(3).Text)
TxtEnd.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(4).Text)
TxtEnd.Text = TxtEnd.Text & [Ô] [Ô] & UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(5).Text)
obrigado
1 abraço!
Pegando sua dica, fiz assim e resolveu meu problema.
TxtSigUFs.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(1).Text)
TxtCidade.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(2).Text)
TxtBairro.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(3).Text)
TxtEnd.Text = UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(4).Text)
TxtEnd.Text = TxtEnd.Text & [Ô] [Ô] & UCase$(myXML.documentElement.ChildNodes(1).ChildNodes(5).Text)
obrigado
1 abraço!
disponha colega
Amigo,
Veja se te ajuda :
Considerando que vc já carregou o xml para um xmlDocument
Veja se te ajuda :
Considerando que vc já carregou o xml para um xmlDocument
Dim xnList2 As XmlNodeList = xml.SelectNodes([Ô]webservicecep/retorno[Ô])
For Each xnp In xnList2
TxtSigUFs.Text = xnp([Ô]uf[Ô]).InnerText()
TxtCidade.Text = xnp([Ô]cidade[Ô]).InnerText()
ETC...
ETC...
ETC...
Next
Tópico encerrado , respostas não são mais permitidas