Python and XML Help
ookrin
ooklah at gmail.com
Fri Apr 17 21:35:45 EDT 2009
On Apr 15, 9:43 am, Scott David Daniels <Scott.Dani... at Acm.Org> wrote:
> ookrin wrote:
> > .... I am still learning. And it's not that I won't take the advice
> > for using ElementTree, I just currently don't know anything about it.
> > I just didn't want to say, "I have no idea what you're talking about!"
> > to Scott cause I figured that would be rude, but I guess so is not
> > saying anything, sorry. So I'll need to read up on it before I
> > actually try to do anything with that approach.
>
> > Seeing the errors - I changed the two classes to this:
> > ... [some code that actually says a _little_ bit about his target] ....
>
> If you had done a better job of asking your question, you'd have found a
> quick answer. That is why everyone points people at smartquestions, not
> to pick on them.
>
> Presuming you have an xml structure like:
> txt = '''<abc> something <def>
> <name name='steve' characterID='sid'> Some contents. </name>
> <name name='stevey' characterID='sidy'>Other contents.</name>
> </def></abc>'''
> import xml.etree.ElementTree as ET
> structure = ET.fromstring(xmls)
> for node in structure.findall('def/name'):
> print '%s: %s / %s: %s' % (node.tag, node.attrib['name'],
> node.attrib['characterID'], node.text)
>
> or a file named 'my.xml' with the same contents:
> import xml.etree.ElementTree as ET
> structure = ET.parse('my.xml')
> for node in structure.findall('def/name'):
> print '%s: %s / %s: %s' % (node.tag, node.attrib['name'],
> node.attrib['characterID'], node.text)
>
> --Scott David Daniels
> Scott.Dani... at Acm.Org
Thanks very much for your patience with me and thanks for the help
everyone.
This is my end result:
self.api = apiConnection(self.userID,self.apiKey)
xmlData = self.api.returnXml()
if(xmlData != "None"):
struct = ET.fromstring(xmlData)
self.charIDs =[]
i=0
for node in struct.findall('result/rowset/row'):
char = node.attrib['name']
id = node.attrib['characterID']
temp = char, id
#append them to the variable for later
self.charIDs.append(temp)
i+=1
#Setup the select window and run it
#selects which character I want
self.selectCharUi = selectChar(self,self.charIDs)
self.selectCharUi.selectWindow.exec_()
#Get the name that was selected
self.selectedCharName = self.selectCharUi.returnValue
()
#Set the text widget with the name
self.lE_charID.setText(self.selectedCharName)
#enable the Ok button
self.pbOk.setEnabled(True)
It collects the names and IDs, sends them to a pyqt4 window with a
list widget to list the names, a name gets selected and then I get the
name that was selected. Though now that I think about it, maybe using
a dictionary would be better. Elsewhere I gather up the userID, apiID,
characterName and characterID and write it t a file. I hope it doesn't
look too horrible.
John - my programming experience was two semesters of c++ about 6
years ago. Everything else I've learned from the internet. =/
I'll try to make my questions better next time.
Andrew
More information about the Python-list
mailing list