Manipulação de XML com Python

Publicado por Fagner Amaral de Souza Candido (última atualização em 18/02/2011)

[ Hits: 18.823 ]

Homepage: https://github.com/fagnercandido

Download Previsao.py




Olá PessoALL,

Todos sabemos da relevância que o XML possui nas aplicações. Ele traz consigo uma gama enorme de possibilidades: criação de bases de dados, ontologias e interoperabilidade entre sistemas. Recentemente descobri que o INMET disponibiliza a previsão do tempo em formato XML através de um WebService.

O código a seguir é bem simples: Ele recebe uma URL, no caso a do WebService do INMET, contendo a previsão do tempo e trabalha em cima deste arquivo.

O código é bem simples, manipulando de forma clara e rápida algumas possíveis formas de se trabalhar com XML em Python.

Qualquer dúvida, sugestão ou critica serão bem-vindas,

Abraços.

f_Candido
fagner7777777@gmail.com
@fagner_candido

  



Esconder código-fonte

# -*- coding: utf-8 -*-
'''
   Sintese:
      Objetivo : Demonstrar manipulacao de arquivos XML em Python
      Entrada : Uma URL com XML - WebService do INMET
      Saída : Uma tag do arquivo
      Autor : f_Candido   <fagner7777777@gmail.com>   @fagner_candido
'''

# Importacoes
import urllib2
from xml.dom import minidom

class Previsao():
    # URL do INMET - WebService
    url = 'http://www.inmet.gov.br/webservice/previsao/?geraXml=&TP=CP&CP=BRAS%CDLIA& '
    fonte = ''
    xmlDoc = ''
    listaEstado = []

    def __init__(self):
   '''
      Construtor onde e recebido a URL
      Alem de ser convertido para objeto XML
   '''
        try:
            self.fonte = urllib2.urlopen(self.url).read()
        except:
            self.fonte = 'URL Inválida'
   self.xmlDoc = minidom.parseString(self.fonte)
        

    def getTag(self, tag):
   '''
      Obtem a tag pegando por valor
   '''
        self.listaEstado = self.xmlDoc.getElementsByTagName(tag)

    def listElement(self):
   '''
      Percorre os elementos
   '''
        for x in self.listaEstado:
            print x.toxml()


objPrevisao = Previsao()
listaEstado = objPrevisao.getTag('estado')
objPrevisao.listElement()

Scripts recomendados

IPC em Python

Algoritmo de escala de cinza

Utilizando a biblioteca Numpy

Combinações de letras, números e muito mais

Singleton


  

Comentários
[1] Comentário enviado por FernandoSurian em 30/03/2011 - 21:05h

Cara muito legal e gostaria de saber se você poderia dar uma ajuda nessa linguagem de programação, pois estou tentando realizar um trabalho com inode (sistema de arquivos) para fazer uma busca comparado cabeçalho e rodapé de arquivos... seria possivel alguma ajuda... obrigado..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts