I'm trying to write a website updating script, but when I run the script, my function to search the DOM tree returns None instead of what it should.
I have this program: -------- import sys from xml.dom.minidom import parse # search the tree for an element with a particular class def findelement(current, classtofind, topnode = None): if topnode == None: topnode = current # if it's an xml element... if current.nodeType == 1: print current.nodeName, ':', current.getAttribute('class') if current.getAttribute('class') == classtofind: print 'Returning node:', current return current elif current.hasChildNodes(): findelement(current.firstChild, classtofind, topnode) elif current.nextSibling: findelement(current.nextSibling, classtofind, topnode) elif (current.parentNode != topnode) \ and (current.parentNode.nextSibling != None): findelement(current.parentNode.nextSibling, classtofind, topnode) else: print 'Returning None...' return None # others (text, comment, etc) else: if current.nextSibling: findelement(current.nextSibling, classtofind, topnode) elif (current.parentNode != topnode) \ and (current.parentNode.nextSibling != None): findelement(current.parentNode.nextSibling, classtofind, topnode) else: print 'Returning None...' return None # parse the document blog = parse('/home/noah/dev/blog/template.html') # find a post postexample = findelement(blog.documentElement, 'post') print 'Got node: ', postexample ----- My output is this: ----- html : head : title : body : h1 : ul : li : h2 : ol : li : post Returning node: <DOM Element: li at -0x48599c74> Got node: None ----- The function finds the right element fine, and says it will return <DOM Element: li at -0x48599c74>, but the program gets None instead. What's happening here? Any suggestions? -- http://mail.python.org/mailman/listinfo/python-list