Stefan Behnel
3/9/2010 3:46:00 PM
tdan, 09.03.2010 04:35:
> I have been using ElementTree to write an app, and would like to
> simply remove an element.
> But in ElementTree, you must know both the parent and the child
> element to do this.
> There is no getparent() function, so I am stuck if I only have an
> element.
>
> I am iterating over a table and getting all<td> tags, checking their
> text, and conditionally deleting them:
>
> def RemoveElementWithText( topEl, subEl, text ):
Note that all-camel-case names are rather unusual for function names and
rather used for class names. See PEP 8 for a style guide.
> for el in topEl.getiterator( subEl ):
> if el.text = text:
> break
> else:
> el = None
> return el
>
> RemoveElementWithText( table, 'td', 'sometext' )
>
> My table is like so:
>
> <table>
> <thead>...
> <tbody><tr><td>...
>
> Is there any way to do this in ElementTree?
I think the easiest is to iterate not over the elements themselves, but
over their parents, and then to remove all children of the specified tag in
each step.
Stefan