On Monday, April 25, 2016 at 4:58:15 PM UTC+5:30, Jussi Piitulainen wrote: > harirammano...@gmail.com writes: > > > On Monday, April 25, 2016 at 4:09:26 PM UTC+5:30, Jussi Piitulainen wrote: > >> Peter Otten writes: > >> > >> > harirammano...@gmail.com wrote: > >> > > >> >> Here is the code: > >> > > >> > Finally ;) > >> > >> :) > > > > name space issue can be resolved registering name space i have no > > issue with that, only concern is xml parser has no effect when http > > things are added... > > No, the parser works fine. Your attempt to register a default namespace > didn't work. Those "http things" *are* the namespace issue! > > The following version of your code works. *Try it.* It finds the servlet > element in the document object, removes it, and writes out XML text > without the servlet element. (It seems to invent another namespace > prefix. That doesn't change the meaning of the document.) > > import xml.etree.ElementTree as ET > > ns = { 'x' : "http://xmlns.jcp.org/xml/ns/javaee" } > > tree = ET.parse('sample.xml') > root = tree.getroot() > > for servlet in root.findall('x:servlet', ns): > servletname = servlet.find('x:servlet-name', ns).text > if servletname == "controller": > root.remove(servlet) > > tree.write('output.xml')
yup its working well if i include register namespace, else i am getting ns:0 in every line of output.xml. But its removing top line <?xml version="1.0" encoding="ISO-8859-1"?> -- https://mail.python.org/mailman/listinfo/python-list