[EMAIL PROTECTED] wrote: > I'm playing with XML and elementtree and am missing something but I'm > not sure what...? I've create an XML file with Elementtree with a root > of backup.xml. Attached to the root is a dirob and the dirobj has a > fileobj. fileobj has filename and filesize tags. I can open the file > in excel and it sets out the columns as I would expect. The problem > I'm having is parsing the file. Using.. > >>>> file = open('c:\\scripts\\backup.xml', "r") >>>> tree = parse(file) >>>> elem = tree.getroot() >>>> elem.findtext('filesize') > > Doesn't return anything, infact I can't seem to find anything > regardless of what I search for.
find/findtext/findall only look at direct subelements, unless you use xpath- style syntax. in this case, elem.findtext("dirob/fileob/filesize") should do the trick. or you could do something like for dir_elem in tree.findall("dirob"): for file_elem in dirob.findall("fileob"): print file_elem.findtext("filesize") to loop over all directory objects at the top level, and print the sizes for all files in those directories. to get the first filesize in the tree, no matter where it is, use elem.findtext(".//filesize") </F> > - <backup.xml> > - <dirob> > <dirname>C:\sysprep</dirname> > - <fileob> > <filename>test.txt</filename> > <filesize>10</filesize> > </fileob> > </dirob> > </backup.xml> -- http://mail.python.org/mailman/listinfo/python-list