delete from pattern to pattern if it contains match
Peter Otten
__peter__ at web.de
Mon Apr 25 06:13:56 EDT 2016
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"
More information about the Python-list
mailing list