Buscando E Salvando Xml De Outro Site. Pega um arquivo XML de um site e salva em uma pasta de sua aplicação.

Hello Programmers,

Fiz esse pequeno código para ajudar um amigo que estava com problemas para consumir um XML do site do INPE, onde ele obtém a previsão do tempo de sua cidade.
O código é simples, de fácil entendimento, tem 4 parâmetros e todos são obrigatórios.


<%
'obs: essa rotina pode ser facilmente adapatada para baixar qualquer arquivo, e não apenas um XML'
'escolha a pasta levando em consideração a pasta onde este script ficará'
sub armazenarXML(url, encode, pasta, nome)

        'variável para armazenar o cabeçalho do nosso XML'
        dim content, Stream

        content = "<?xml version='1.0' encoding='" & encode & "' ?>"

        'Cria o objeto XML para fazermos o request da página, usaremos o método GET'
        Set Xml = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") ' para o XMLHHTP 6'
        'Set Xml = Server.CreateObject("MSXML2.XMLHTTP.4.0") para o XMLHTTP 4'
        'Set Xml = Server.CreateObject("MSXML2.XMLHTTP.3.0") para o XMLHTTP 3'
        'Set Xml = Server.CreateObject("MSXML2.ServerXMLHTTP") para o XMLHTTP 2'
        'Set Xml = Server.CreateObject("Microsoft.XMLHTTP") para uma versão não especificada, não recomendado!'

        'Método , url da página com o arquivo'
        Xml.open "GET", url, false

        'Baixa o arquivo'
        Xml.send

        'Cria o Stream para salvar o arquivo'
        set Stream = Server.CreateObject("ADODB.Stream")

        'Abre a Stream e seta o tipo para texto'
        Stream.Type = adTypeText
        Stream.Open

        content = content & Xml.responseText

        'Retorna o conteudo do arquivo e faz o stream dele'
        Stream.WriteText (content)

        'Agora é so salvar o arquivo'
        Stream.SaveToFile Server.MapPath("\" & pasta & "\" & nome & ".xml"), adSaveCreateOverWrite 'sobrescreve o XML, pra não precisar ficar verificando com FSO'

        if(Err.number <> 0) then
                Response.write(Err.number & "<br />")
                Response.write(Err.description & "<br />")
                Response.write(Err.file & "<br />")
                Response.write(Err.line & "<br />")
        else
                Response.write("Arquivo XML salvo com sucesso.")
        end if

end sub

'chamando a rotina, e passando os devidos parâmetros'
armazenarXML "http://servicos.cptec.inpe.br/XML/cidade/4305/previsao.xml", "utf-8", "search", "previsao-tempo"

%>

0 comentários:

Postar um comentário

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More