trouble with minidom
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Sat Jul 25 02:44:14 EDT 2009
En Fri, 24 Jul 2009 14:56:29 -0300, Ronn Ross <ronn.ross at gmail.com>
escribió:
> On Tue, Jul 21, 2009 at 7:32 PM, Gabriel Genellina
> <gagsl-py2 at yahoo.com.ar>wrote:
>> En Tue, 21 Jul 2009 21:08:57 -0300, Ronn Ross <ronn.ross at gmail.com>
>> escribió:
>>
>> Hello I'm trying to read an xml file using minidome. The xml looks
>> like:
>>> <rootNode>
>>> <project>
>>> <name>myProj</name>
>>> <path>/here/</path>
>>> </project>
>>> </rootNode>
>
> I have used the loop below and it works great, but I need get both child
> elements or 'project' per iteration. I want to build a dictionary that
> resemble this:
> my_dict = {'myProj':'/here/', 'anothername':'anotherpath'}
>
> I couldn't find how to do with in the element tree docs. Can you point
> me in
> the right direction?
py> import xml.etree.ElementTree as ET
py> xml = """<rootNode>
... <project>
... <name>myProj</name>
... <path>/here/</path>
... </project>
... <project>
... <name>anothername</name>
... <path>anotherpath</path>
... </project>
... </rootNode>"""
py> doc = ET.fromstring(xml)
py> result = {}
py> for project in doc.findall('project'):
... name = project.find("name").text
... path = project.find("path").text
... result[name] = path
...
py> result
{'anothername': 'anotherpath', 'myProj': '/here/'}
The Element interface is documented here:
http://docs.python.org/library/xml.etree.elementtree.html#the-element-interface
More info in the author's site:
http://www.effbot.org/zone/element-index.htm
(Perhaps you're using Python 2.5? That part of the documentation was
omited in the 2.5 doc set by mistake. Read the 2.6 docs instead, there was
no changes)
--
Gabriel Genellina
More information about the Python-list
mailing list