<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2657.73">
<TITLE>RE: [Python-au] simple XML-&gt;Dict tool</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>David Mertz has written a collection of utilities:</FONT>
</P>

<P><FONT SIZE=2><A HREF="http://gnosis.cx/download/Gnosis_Utils-current.tar.gz" TARGET="_blank">http://gnosis.cx/download/Gnosis_Utils-current.tar.gz</A></FONT>
</P>

<P><FONT SIZE=2>One of which is gnosis.xml.objectify which returns python objects from xml. Check it out, it may be what you're after.</FONT>
</P>

<P><FONT SIZE=2>G</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: python-au-bounces@python.net</FONT>
<BR><FONT SIZE=2>[<A HREF="mailto:python-au-bounces@python.net">mailto:python-au-bounces@python.net</A>]On Behalf Of Darryl Ross</FONT>
<BR><FONT SIZE=2>Sent: 15 September 2005 13:28</FONT>
<BR><FONT SIZE=2>To: python-au@python.net</FONT>
<BR><FONT SIZE=2>Subject: [Python-au] simple XML-&gt;Dict tool</FONT>
</P>
<BR>

<P><FONT SIZE=2>-----BEGIN PGP SIGNED MESSAGE-----</FONT>
<BR><FONT SIZE=2>Hash: SHA1</FONT>
</P>

<P><FONT SIZE=2>Hey All,</FONT>
</P>

<P><FONT SIZE=2>I'm trying to convert a simple xml document into a python dictionary,</FONT>
<BR><FONT SIZE=2>similar to SimpleXML for PHP and XML::Dumper for Perl.</FONT>
</P>

<P><FONT SIZE=2>The XML documents I'm loading look like this:</FONT>
</P>

<P><FONT SIZE=2>&gt; &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;</FONT>
<BR><FONT SIZE=2>&gt; &lt;root xmlns=&quot;urn:schemas-upnp-org:device-1-0&quot;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp; &lt;specVersion&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;major&gt;1&lt;/major&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;minor&gt;0&lt;/minor&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp; &lt;/specVersion&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp; &lt;device&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;deviceType&gt;urn:schemas-upnp-org:device:Basic:1&lt;/deviceType&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;friendlyName&gt;AXIS 206M - 00408C6A556E&lt;/friendlyName&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;manufacturer&gt;AXIS&lt;/manufacturer&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;manufacturerURL&gt;<A HREF="http://www.axis.com" TARGET="_blank">http://www.axis.com</A>&lt;/manufacturerURL&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modelDescription&gt;AXIS 206M Network Camera&lt;/modelDescription&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modelName&gt;AXIS 206M&lt;/modelName&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modelNumber&gt;206M&lt;/modelNumber&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modelURL&gt;<A HREF="http://www.axis.com" TARGET="_blank">http://www.axis.com</A>&lt;/modelURL&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;serialNumber&gt;00408C6A556E&lt;/serialNumber&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;UDN&gt;uuid:42617369630000000000-00-40-8c-6a-55-6e&lt;/UDN&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;serviceList&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/serviceList&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;presentationURL&gt;<A HREF="http://172.29.101.100" TARGET="_blank">http://172.29.101.100</A>&lt;/presentationURL&gt;</FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp; &lt;/device&gt;</FONT>
<BR><FONT SIZE=2>&gt; &lt;/root&gt;</FONT>
</P>

<P><FONT SIZE=2>And I would (ideally) like to be able to do something like:</FONT>
</P>

<P><FONT SIZE=2>&gt; xmlobj = xml2dict('upnp.xml')</FONT>
<BR><FONT SIZE=2>&gt; print xmlobj.root.device.serialNumber</FONT>
</P>

<P><FONT SIZE=2>Does anyone have any pointers to something that would do what I need, or</FONT>
<BR><FONT SIZE=2>even some decent documentation on how to write a module to do it?</FONT>
</P>

<P><FONT SIZE=2>TIA,</FONT>
<BR><FONT SIZE=2>Darryl</FONT>
</P>

<P><FONT SIZE=2>-----BEGIN PGP SIGNATURE-----</FONT>
<BR><FONT SIZE=2>Version: GnuPG v1.4.1 (GNU/Linux)</FONT>
</P>

<P><FONT SIZE=2>iD8DBQFDKOpV/XQ6DbmPjokRAoSMAJ9A1z5LVj2o8prYl3p0RQVsUawiAgCfYGQV</FONT>
<BR><FONT SIZE=2>2QDmXur8Xp92zJvIEcQSsao=</FONT>
<BR><FONT SIZE=2>=A15a</FONT>
<BR><FONT SIZE=2>-----END PGP SIGNATURE-----</FONT>
</P>

<P><FONT SIZE=2>_______________________________________________</FONT>
<BR><FONT SIZE=2>python-au maillist&nbsp; -&nbsp; python-au@starship.python.net</FONT>
<BR><FONT SIZE=2><A HREF="http://starship.python.net/mailman/listinfo/python-au" TARGET="_blank">http://starship.python.net/mailman/listinfo/python-au</A></FONT>
</P>

</BODY>
<!--[object_id=#infocomp.com#]--><P><FONT face=Arial color=#808080 size=1>Important notice: This message is intended for the individual(s) and entity(s) addressed. The information contained in this transmission and any attached, may be confidential and may also be the subject of legal privilege, public interest immunity or legal professional privilege. Any review, retransmission, dissemination or other use of, taking of any action in reliance upon this information by person or entities other than the recipient is prohibited and requires authorization from the sender. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person) you may not copy or deliver this message to anyone. In such cases you should destroy this message and kindly notify the sender by reply email. </FONT></P>
<P><FONT face=Arial color=#808080 size=1>WARNING: Although Infocomp has taken reasonable precautions so that no viruses&nbsp;are present in this e-mail, the company cannot accept responsibility for any loss or damage arising from the use of e-mail attachments.</FONT></P></HTML>