Explique isso p/ os programas! Não para nós.
Tem algum programa ai que ler esse XML ? Não é o que vamos ou podemos criar, são os prontos.
Cadê o node endereço ? ou node Logradouro ? etc...
Temos o node <table> o node <tr> e os nodes <td>, no <td> temos que adivinhar que o primeiro é endereço, o segundo "<td>" o bairro... e se mais na frente os caras(programadores lá do CTE) colocarem o <td> do bairro em outra posição ?
Como disse está mal feito ou incompleto.
Saudações,
Itamar M. Lins Jr.
Busca CEP na net
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 8029
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 2 vezes
- Curtiram: 1 vez
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Busca CEP na net
Amigos, este link do buscacep do Correios tem como origem um formulário de consulta de CEP, e a finalidade dele não é para ser utilizado como um webservice, então o seu retorno está como HTML.Itamar M. Lins Jr. escreveu:Como disse está mal feito ou incompleto.
Na mensagem postada pelo nosso amigo Cavalo Marinho, tem uma opção que tem um retorno melhor formatado.
Retorno com piped:
http://viacep.com.br/ws/16015040/piped/
Retorno com xML:cep:16015-040|logradouro:Rua Afonso Pena|complemento:de 821/822 a 1679/1680|bairro:Vila Mendonça|localidade:Araçatuba|uf:SP|ibge:3502804
http://viacep.com.br/ws/16015040/xml/
Veja outros tipos de retorno e opções de consultas em http://viacep.com.br/<?xml version="1.0" encoding="UTF-8"?>
<xmlcep>
<cep>16015-040</cep>
<logradouro>Rua Afonso Pena</logradouro>
<complemento>de 821/822 a 1679/1680</complemento>
<bairro>Vila Mendonça</bairro>
<localidade>Araçatuba</localidade>
<uf>SP</uf>
<ibge>3502804</ibge>
</xmlcep>
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- JoséQuintas
- Administrador

- Mensagens: 20420
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Busca CEP na net
Entendi. Quer usar a classe normal pra XML.
Tente isto:
Tente isto:
Código: Selecionar todos
FUNCTION LimpaXml( cXml )
DO WHILE "> " $ cXml
cXml := StrTran( cXml, "> ", ">" )
ENDDO
RETURN cXml
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 8029
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 2 vezes
- Curtiram: 1 vez
Busca CEP na net
Ola!
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
Function ChkCep(cCep)
LOCAL oHTTP, cURL,oXML,oCEP,oDados
cURL := "http://viacep.com.br/ws/"+cCep+"/xml/"
oHTTP:= TIPClientHTTP():New( cURL )
IF !oHTTP:Open()
alert( "Erro conectando:", oHTTP:lastErrorMessage() )
RETURN .F.
ENDIF
cHtml := hb_UTF8ToStr( oHTTP:ReadAll() )
oHTTP:Close()
oXML := TXMLDocument():New( cHtml, HBXML_STYLE_NOESCAPE )
IF oXML:nError != HBXML_ERROR_NONE
alert( "xml com problema " + Str( oXML:nError ) )
RETURN
ENDIF
oCEP := oXML:findfirst( "xmlcep" )
IF oCEP == NIL
alert( "TAG xmlcep não localizada." )
RETURN
ENDIF
oDados := TXmlIterator():New( oCEP )
cUF :=""
cCID:=""
cBAI:=""
cLOG:=""
cRUA:=""
cIBGE:=""
DO WHILE .T.
oCurrent := oDados:Next()
IF oCurrent == NIL
Exit //Fim da Leitura
ELSE
IF oCurrent:cName == "logradouro"
cRUA := oCurrent:cData
ELSEIF oCurrent:cName == "complemento"
cCOMPLEMENTO := oCurrent:cData
ELSEIF oCurrent:cName == "bairro"
cBAI := oCurrent:cData
ELSEIF oCurrent:cName == "localidade"
cCID := Upper(oCurrent:cData)
ELSEIF oCurrent:cName == "uf"
cUF := oCurrent:cData
ELSEIF oCurrent:cName == "ibge"
cIBGE := oCurrent:cData
ENDIF
ENDIF
ENDDO
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.