Brendan Simon (eTRIX), 31.08.2010 10:49:
  I am trying to use ElementTree (with Python 2.7) and can't seem to find
elements at the top level.  The find() and findall() methods seem to
find elements within the top level, but not if it the elements are at
the top level.

How do I find top level elements ??
Here is my code.

     import xml.etree.ElementTree as ET

     xml = '''\
     <?xml version="1.0" encoding="Windows-1252" ?>
     <components>
       <component>
         <name>Fred</name>
         <location>Australia</location>
       </component>
     </components>
     '''

     root = ET.fromstring( xml )

     ### This pattern is not found :(
     comps = root.find( './/components' )

"." matches the current element, so the path expression looks for all "components" nodes *below* the current element.

You can either wrap the root in an ElementTree and search globally (i.e. without the leading "."), or you can test the root node yourself.

Stefan

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to