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

AltStyle によって変換されたページ (->オリジナル) /