[Tutor] Best way to construct this
Sean Cronin[tutor]
seancron+pythontutor at gmail.com
Sun Sep 2 05:32:11 CEST 2007
Hi,
I'm trying to create a desktop weather program using the weather.gov SOAP
XML feed[1] and (after I get the insides all sorted out) Tkinter. However,
this is my first major program and I was wondering if anyone could offer me
some guidance in the construction of it.
I have settled on using SOAPpy for the SOAP interface and pyXML to parse the
resulting XML, but I am having trouble figuring out what the most efficient
way of parsing the XML and arranging my program.
Right now I have two modules named libndfdsoap and weatherpy. Module
libndfdsoap contains one function that gets the XML and saves it to a file
named weather.xml. Module weatherpy contains some constants and a class for
parsing the XML with different functions for find different data types.
I am using xml.dom.minidom and using childNodes to narrow down to the values
that I need and then storing that in a dictionary. Here's a snippet of
the code:
class ByDayXMLParse:
"""Contains functions for parsing the NDFD XML"""
def __init__(self, path_to_xml_file):
global data, maxtempdata, maxtempnode
data = minidom.parse(path_to_xml_file)
#Dictionary in which the max temps are going to be stored in the format
#{1: day1temp, 2: day2temp, ...}
maxtempdata = {}
#Less typing for me :)
maxtempnode = data.childNodes[0].childNodes[3].childNodes[9
].childNodes[1]
def maxTemp(self, path_to_xml_file):
x = 3
y = 1
while x < 16:
maxtempdata[y] = maxtempnode.childNodes[x].childNodes[0].data
x, y = x + 2, y + 1
I've tried putting the XML parsing code in libndfdsoap but by doing so I
couldn't access the resulting data. I can't help but feel like I'm missing
something that will make my life a whole lot easier.
Any help would be greatly appreciated.
-Sean
[1] http://www.weather.gov/forecasts/xml/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070901/377b6f56/attachment.htm
More information about the Tutor
mailing list