Página 2 de 2
Busca CEP na net
Enviado: 17 Abr 2015 12:55
por Itamar M. Lins Jr.
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
Enviado: 17 Abr 2015 15:52
por Toledo
Itamar M. Lins Jr. escreveu:Como disse está mal feito ou incompleto.
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.
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/
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
Retorno com xML:
http://viacep.com.br/ws/16015040/xml/
<?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>
Veja outros tipos de retorno e opções de consultas em
http://viacep.com.br/
Abraços,
Busca CEP na net
Enviado: 17 Abr 2015 17:00
por JoséQuintas
Entendi. Quer usar a classe normal pra XML.
Tente isto:
Código: Selecionar todos
FUNCTION LimpaXml( cXml )
DO WHILE "> " $ cXml
cXml := StrTran( cXml, "> ", ">" )
ENDDO
RETURN cXml
Busca CEP na net
Enviado: 17 Abr 2015 22:17
por Itamar M. Lins Jr.
Ola!
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
Saudações,
Itamar M. Lins Jr.