harirammanohar at gmail.com wrote: > Here is the code: Finally ;) > import xml.etree.ElementTree as ET > ET.register_namespace("", "http://xmlns.jcp.org/xml/ns/javaee") I don't know what this does, but probably not what you expected. > tree = ET.parse('sample.xml') > root = tree.getroot() >> for servlet in root.findall('servlet'): > servletname = servlet.find('servlet-name').text I think you have to specify the namespace: for servlet in root.findall('{http://xmlns.jcp.org/xml/ns/javaee}servlet'): servletname = servlet.find( '{http://xmlns.jcp.org/xml/ns/javaee}servlet-name').text > if servletname == "controller": You could have added a print statement to verify that the line below is executed. > root.remove(servlet) >> tree.write('output.xml') >> This will work if <web-app> </web-app> doesnt have below... >> xmlns="http://xmlns.jcp.org/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee > http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"