Manipulação de XML com Python
Publicado por Fagner Amaral de Souza Candido (última atualização em 18/02/2011)
[ Hits: 19.194 ]
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()
Virus, trojan, sei la o que é isso
Programa para calcular a média e a nota trimestral
Resolução de problemas por meio de buscas - Labirinto (Inteligência Artificial)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









