So this has been driving me crazy all day. I am trying to extract xml data in the format:\[code\]<Script message="a" soundID="1"> <Script message="bar"> <Script message="foo!"> <Script message="bar!" soundID="5"> </Script> </Script> </Script></Script><Script message="b" soundID="2"> <Script message="bar"> <Script message="foo!"> <Script message="bar!"> </Script> </Script> </Script></Script>\[/code\]The problem is that using the findall() method for beautiful soup only finds my parent nodes (a and b). I tried making a recursive function to do it but it doesn't work correctly:\[code\] def getnodes(node): scripts = node.findChildren() if scripts > 0: for script in scripts: if script.has_key('soundid'): if(script.has_key('body')): soundscripts[script['body']] = script['soundid'] elif(script.has_key('message')): soundscripts[script['message']] = script['soundid'] getnodes(script)\[/code\]My getnodes function fails because when I do node.findChildren(), it just gives me the children of the file again, not the tag that I specified. Is there an easy way to find all my script tags in a file?