Element Tree Help

Stefan Behnel stefan_ml at behnel.de
Mon Mar 24 11:36:39 EDT 2008


Robert Rawlins wrote:
> Hello Guys,I have little to no experiance with element tree and I'm
> struggling to find a way to parse the details from the XML document
> (attached) into my application. Essentialy I'm looking to take the
> following document and turn it into a dict of tuples, each dict element
> defines a datasource with the key to the element being the 'name' which is
> defined in the XML and then the value of the pair is a tuple which contains
> the details of the datasource, like the host and port etc.I've attached a
> copy of the example XML to this email.Can anyone offer some advice on how
> to get started with this? I've spent a little time looking over the
> documentation of element tree and have struggled to break the ice and parse
> this document.Thanks guys,Robert

Given this document:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE datasources SYSTEM "datasources.dtd">
<datasources>
	<datasource>
		<name>a name</name>
		<host>localhost</host>
		<port>3306</port>
		<database>database1</database>
		<username>someusername</username>
		<password>somepassword</password>
	</datasource>
	<datasource>
		<name>another name</name>
		<host>localhost</host>
		<port>3306</port>
		<database>database2</database>
		<username>itsusername</username>
		<password>andthepassword</password>
	</datasource>
</datasources>

I would do something like this:

  d = {}
  for event, element in ET.iterparse("thefile.xml"):
      if element.tag == "datasource":
          d[element.find("name")] = tuple([ el.text for el in element ])

Stefan



More information about the Python-list mailing list