Hi Everyone,<br>
<br>
Thanks for all your suggestions. I read up on gzip 
and urllib and also learned in the process that I could use urllib2 as 
its the latest form of that library.<br>
<br>
Herewith my solution: I don&#39;t know how elegant it is, but it works just fine.<br>

<br>
<span style="color:rgb(51, 51, 255)">def get_contests():</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     url = &#39;<a href="http://xml.matchbook.com/xmlfeed/feed?sport-id=&amp;vendor=TEST&amp;sport-name=&amp;short-name=Po" target="_blank">http://xml.matchbook.com/xmlfeed/feed?sport-id=&amp;vendor=TEST&amp;sport-name=&amp;short-name=Po</a>&#39;</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">     req = urllib2.Request(url)</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     req.add_header(&#39;accept-encoding&#39;,&#39;gzip/deflate&#39;)</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     opener = urllib2.build_opener()</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     response = opener.open(req)</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     compressed_data = response.read()</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     compressed_stream = StringIO.StringIO(compressed_data)</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     gzipper = gzip.GzipFile(fileobj=compressed_stream)</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     data = gzipper.read()</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     current_path = os.path.realpath(MEDIA_ROOT + &#39;/xml-files/d.xml&#39;)</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     data_file = open(current_path, &#39;w&#39;)</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     data_file.write(data)</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     data_file.close()</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     xml_data = ET.parse(open(current_path, &#39;r&#39;))</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     contest_list = []</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     for contest_parent_node in xml_data.getiterator(&#39;contest&#39;):</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">          contest = Contest()</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">          for contest_child_node in contest_parent_node:</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">               if (contest_child_node.tag == &quot;name&quot; and contest_child_node.text is not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">                    <a href="http://contest.name/" target="_blank">contest.name</a> = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">              
 if (contest_child_node.tag == &quot;league&quot; and contest_child_node.text is 
not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">                   contest.league = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">               if (contest_child_node.tag == &quot;acro&quot; and contest_child_node.text is not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">                   contest.acro = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">               if (contest_child_node.tag == &quot;time&quot; and contest_child_node.text is not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">                   contest.time = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">               if (contest_child_node.tag == &quot;home&quot; and contest_child_node.text is not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">                   contest.home = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">               if (contest_child_node.tag == &quot;away&quot; and contest_child_node.text is not None and contest_child_node.text != &quot;&quot;):</span><br style="color:rgb(51, 51, 255)">


<span style="color:rgb(51, 51, 255)">                   contest.away = contest_child_node.text</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">          contest_list.append(contest)</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">     try:</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">          os.remove(current_path)</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     except:</span><br style="color:rgb(51, 51, 255)">

<span style="color:rgb(51, 51, 255)">          pass</span><br style="color:rgb(51, 51, 255)">
<span style="color:rgb(51, 51, 255)">     return contest_list</span><br>
<br>
Many thanks!<br><br><div class="gmail_quote">On Tue, May 24, 2011 at 12:35 PM, Stefan Behnel <span dir="ltr">&lt;<a href="mailto:stefan_ml@behnel.de">stefan_ml@behnel.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Sithembewena Lloyd Dube, <a href="tel:24.05.2011%2011" value="+12405201111" target="_blank">24.05.2011 11</a>:59:<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am trying to parse an XML feed and display the text of each child node<br>
without any success. My code in the python shell is as follows:<br>
<br>
&gt;&gt;&gt; import urllib<br>
&gt;&gt;&gt; from xml.etree import ElementTree as ET<br>
<br>
&gt;&gt;&gt; content = urllib.urlopen(&#39;<br>
<a href="http://xml.matchbook.com/xmlfeed/feed?sport-id=&amp;vendor=TEST&amp;sport-name=&amp;short-name=Po" target="_blank">http://xml.matchbook.com/xmlfeed/feed?sport-id=&amp;vendor=TEST&amp;sport-name=&amp;short-name=Po</a><br>

&#39;)<br>
&gt;&gt;&gt; xml_content = ET.parse(content)<br>
<br>
I then check the xml_content object as follows:<br>
<br>
&gt;&gt;&gt; xml_content<br>
&lt;xml.etree.ElementTree.ElementTree instance at 0x01DC14B8&gt;<br>
</blockquote>
<br></div>
Well, yes, it does return an XML document, but not what you expect:<br>
<br>
  &gt;&gt;&gt; urllib.urlopen(&#39;URL see above&#39;).read()<br>
  &quot;&lt;response&gt;\r\n  &lt;error-message&gt;you must add &#39;accept-encoding&#39; as<br>
  &#39;gzip,deflate&#39; to the header of your request&lt;/error-message&gt;\r<br>
  \n&lt;/response&gt;&quot;<br>
<br>
Meaning, the server forces you to pass an HTTP header to the request in order to receive gzip compressed data. Once you have that, you must decompress it before passing it into ElementTree&#39;s parser. See the documentation on the gzip and urllib modules in the standard library.<br>
<font color="#888888">
<br>
Stefan</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
Tutor maillist  -  <a href="mailto:Tutor@python.org" target="_blank">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="http://mail.python.org/mailman/listinfo/tutor" target="_blank">http://mail.python.org/mailman/listinfo/tutor</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Sithembewena Lloyd Dube<br>