Can't find elements using ElementTree find method

Brendan Simon (eTRIX) brendan.simon at etrix.com.au
Tue Aug 31 04:49:53 EDT 2010


 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' )

    ### These patterns are found ok :)
    comp = root.find( './/component' )
    name = root.find( './/name' )

    print 'comps =', comps
    print 'comp =', comp
    print 'name =', name


Thanks, Brendan.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100831/82768b10/attachment.html>


More information about the Python-list mailing list