Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
Pessoal, tenho uma página ASP em um servidor que gera o seguinte código:
<CorreiosXml>
<Endereco>Rua tal de tal</Endereco>
<Bairro>Bairro tal </Bairro>
<Cidade>São Paulo</Cidade>
<Estado>SP</Estado>
</CorreiosXml>
De outro servidor, preciso recuperar estes dados e jogá-los suas respectivas variáveis.
Para recuperar o mesmo faço o seguinte:
pagina = "http://url.com.br/coisas.asp?cep=03876200"
Set objXmlHttp = Server.CreateObject("MSXML2.XMLHTTP")
objXmlHttp.Open "GET",pagina, False
objXmlHttp.setRequestHeader "ContentType","text/xml"
objXmlHttp.Send(null)
Até aqui, beleza, dando um response.write objXmlHttp.ResponseText e exibindo o código fonte, o código aparece extamente como mostrado no inicio.
O que preciso saber é como pegar estes dados e colocá-los em suas variáveis.
Obrigado a todos.
Olá! Obrigado pela ajuda xanburzum!
Mas quero fazer com Microsoft.XMLDOM, assim posso pegar os nós do XML.
Só q ainda num consegui e num manjo nada desses lances...
Se mais alguém poder ajudar eu agradeço muito.
Aguinaldo
apos você recuperar o conteudo atraves do XMLHTTP,você usa as funcoes MID e INSTR para poder recuperar apenas o nó ou tag, entendeu
Valeu xanburzum
Eu estava tentando fazer da seguinte forma:
...
Dim strXML 'var q recebe o XMLHTTP criado anteriormente
strXML = objXmlHttp.responseXML
Set objDom.loadXML(strXML)
Set dados = ObjDom.getElementsByTagName("CorreiosXml")
dado1 = dados.childNodes(0)
dado2 = dados.childNodes(1)
dado3 = dados.childNodes(2)
dado4 = dados.childNodes(3)
Set dados = nothing
Set objDom = nothing
Mais ou menos isso ai, pq já apaguei esse código e refiz de cabeça agora..
Mas da forme q você indicou ficou mais simples, e consegui deixar mais simples ainda:
Na página do outro servidor, ao invés de criar a estrutura XML, concatenei com "|", e para pegar os dados um split
pagina = "http://endereco.com.br/pagina.asp?param=03876200"
Set objXmlHttp = Server.CreateObject("MSXML2.XMLHTTP")
objXmlHttp.Open "GET",pagina, False
objXmlHttp.setRequestHeader "ContentType","text/xml"
objXmlHttp.Send(null)
retorno = objXmlHttp.ResponseText
Set objXMLHttp = Nothing
Dim ArrayDadosEndereco
ArrayDadosEndereco = Split(cstr(retorno),"|")
endereco = ArrayDadosEndereco(0)
bairro = ArrayDadosEndereco(1)
cidade = ArrayDadosEndereco(2)
estado = ArrayDadosEndereco(3)
Valeu cara.
beleza...
parabéns
você pode até usar o MID e INSTR para pegar apenas a parte do code k deseja, existem exemplos no forum sobre isso, dê uma pesqusiada, k irá encontrar