Manipulação de XML com Python
Publicado por Fagner Amaral de Souza Candido (última atualização em 18/02/2011)
[ Hits: 19.301 ]
Homepage: https://github.com/fagnercandido
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
# -*- 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()
Dicionário Ingles de expressões.
Jode de acertar a palavra embaralhada
Cronômetro com interface gráfico utilizando a biblioteca Tkinter
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Eu aprendi o segredo das artes! hahaha (4)
A falsa sensação de que entende a tal da palavra! (0)
Como instalo o Clipper/Harbour no Linux Ubuntu (0)









