XML Not Parsing in Python 2.7 with ElementTree
Question: I have the following XML file which I get from REST API

>
>     <?xml version="1.0" encoding="utf-8"?>
>     <boxes>
>       <home id="1" name="productname"/>
>       <server>111.111.111.111</server>
>       <approved>yes</approved>
>       <creation>2007 handmade</creation>
>       <description>E-Commerce, buying and selling both
> attested</description>
>       <boxtype>
>           <sizes>large, medium, small</sizes>
>           <vendor>Some Organization</vendor>
>           <version>ANY</version>
>       </boxtype>
>       <method>Handmade, Handcrafted</method>
>       <time>2014</time>
>     </boxes>
>  

I am able to get the above output, store in a string variable and print in
console,

but when I send this to xml ElementTree

    
    
    import base64
    import urllib2
    from xml.dom.minidom import Node, Document, parseString
    from xml.etree import ElementTree as ET
    from xml.etree.ElementTree import XML, fromstring, tostring
    
    print outputxml ##Printing xml correctly,  outputxml contains xml above
    content = ET.fromstring(outputxml)
    boxes = content.find('boxes')
    print boxes
    boxtype = boxes.find("boxes/boxtype")
    

If I print the boxes it is giving me `None` and hence is giving me below error

    
    
    boxtype = boxes.find("boxes/boxtype")
    AttributeError: 'NoneType' object has no attribute 'find'
    


Answer: The root level node is `boxes`, and it cannot find `boxes` within itself.

    
    
    boxtype = content.find("boxtype")
    

should be sufficient.

DEMO:

    
    
    >>> import base64
    >>> import urllib2
    >>> from xml.dom.minidom import Node, Document, parseString
    >>> from xml.etree import ElementTree as ET
    >>> from xml.etree.ElementTree import XML, fromstring, tostring
    >>> 
    >>> print outputxml ##Printing xml correctly,  outputxml contains xml above
    <?xml version="1.0" encoding="utf-8"?>
    <boxes>
      <home id="1" name="productname"/>
      <server>111.111.111.111</server>
      <approved>yes</approved>
      <creation>2007 handmade</creation>
      <description>E-Commerce, buying and selling both attested</description>
      <boxtype>
          <sizes>large, medium, small</sizes>
          <vendor>Some Organization</vendor>
          <version>ANY</version>
      </boxtype>
      <method>Handmade, Handcrafted</method>
      <time>2014</time>
    </boxes>
    >>> content = ET.fromstring(outputxml)
    >>> boxes = content.find('boxes')
    >>> print boxes
    None
    >>> 
    >>> boxes
    >>> content #note that the content is the root level node - boxes
    <Element 'boxes' at 0x1075a9250> 
    >>> content.find('boxtype')
    <Element 'boxtype' at 0x1075a93d0>
    >>> 
    

