On Sat, Feb 20, 2010 at 9:27 AM, sWrath swrath <swr...@gmail.com> wrote: > from xml.dom.minidom import parse > from xml.etree.ElementTree import* > > file1="book.xml" > tmptree=ElementTree() > tmptree.parse(file1) > items=root.getiterator() > > > dom = parse(file1) > > > #Find tag names > for node in items : > if node.tag == 'author': #Get tag > print dom.getElementsByTagName ('book') #Error 1
You are mixing two different types of xml parsers, either user minidom for node in dom.getElementsByTagName('author'): print node.getElementsByTagName('book') or use etree for el in items: if el.tag == 'author': print el.find('book') There are a few differences you need to note, the getElementsByTagName always returns a list even if there is only 1 element and find only returns the first element found no matter what. If you want to print all books associated with an author you would need to do something like for author in tmptree.getiterator('author'): for book in author.getiterator('book'): print book -- http://mail.python.org/mailman/listinfo/python-list