Re: Remove namespace declaration from ElementTree in lxml
- From: Zero Piraeus <schesis@xxxxxxxxx>
- Date: Fri, 28 Dec 2007 11:28:38 -0800 (PST)
:
I want to remove an unused namespace declaration from the root element
of an ElementTree in lxml.
[...] I'm reduced to sticking the output through str.replace() ...
which is somewhat inelegant.
And also a bit error prone (unless you are sure the replaced string really
only occurs where you want to replace it).
"Nada es seguro" ... but it does seem unlikely that
' xmlns:someprefix="urn:foo:bar"'
will appear in the content. Not impossible though, I suppose. If I
want to try and make sure I only catch it as an element's attribute,
that leads me to a regex, which seems an even less clever idea.
You can try this:
root = etree.parse(...).getroot()
new_root = etree.Element(root.tag, root.attrib)
new_root[:] = root[:]
Note, however, that this will not copy root-level PIs or internal DTD subsets.
But you can copy PIs and comments by hand.
Thanks. I considered copying the tree, but didn't bother trying it as
I would expect it to be fairly expensive. Maybe no more expensive than
a regex though. I'll take a look ...
-[]z.
.
- Follow-Ups:
- Re: Remove namespace declaration from ElementTree in lxml
- From: Stefan Behnel
- Re: Remove namespace declaration from ElementTree in lxml
- References:
- Remove namespace declaration from ElementTree in lxml
- From: Zero Piraeus
- Re: Remove namespace declaration from ElementTree in lxml
- From: Stefan Behnel
- Remove namespace declaration from ElementTree in lxml
- Prev by Date: Re: os.system question
- Next by Date: Re: os.system question
- Previous by thread: Re: Remove namespace declaration from ElementTree in lxml
- Next by thread: Re: Remove namespace declaration from ElementTree in lxml
- Index(es):
Relevant Pages
|