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: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 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: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 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.