delete xml elements - using xpath search

Stefan Behnel stefan_ml at behnel.de
Tue Oct 16 01:50:53 EDT 2012


Tharanga Abeyseela, 16.10.2012 05:57:
> i need to delete the following pattern and its parent node from my xml
> file (IF THE SEARCH STRING FOUND)
> 
> <Rating>NC</Rating>
> 
> if i find the above particular string , i need to delete the XML
> elements (parent of the <Rating> element.  problem is i have different
> parent nodes with different names..
> 
> like
> 
> <movies>
>      <name> xxx</name>
>       <title>xxx </title>
>       <Rating>NC</Rating>
> </movies>
> 
> <tvshow>
>     <name> </name>
>      <title>xxx </title>
>      <Rating>NC</Rating>
> </tvshow>
> 
> <tvepisode>
>     <name>xxx </name>
>      <title>xxx </title>
>      <Rating>M</Rating>
> </tvepisode>
> 
> 
> as an example, i need to remove <movies> section and <tvshow> section
> from my xml, (because it has the word NC) but need to keep <tvepisode>
> 
> can someone point me to the correct direction, or code snippet

Use the xml.etree.ElementTree module. Just parse() in the file, iterate
over the nodes, use the findtext() method to search for the text of
"Rating" tags and compare it to "NC". Keep the nodes that don't match.

Stefan





More information about the Python-list mailing list