LENDO UM ARQUIVO XML

EMANUEL 29/04/2013 08:01:42
#422649
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
MARCELO.TREZE 29/04/2013 08:53:12
#422652
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
EMANUEL 29/04/2013 09:30:14
#422654
Caro Marcelo,

Não consegui. Daria pra voce me da um exemplo baseado no codigo que postei.

Obrigado mais uma vez!

EMANUEL 29/04/2013 19:43:17
#422710
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!
MARCELO.TREZE 30/04/2013 13:26:41
#422728
disponha colega
FOXMAN 30/04/2013 13:43:12
#422730
Amigo,

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