Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: ElementTree Issue - Search and remove elements

Reply
Thread Tools

Re: ElementTree Issue - Search and remove elements

 
 
Stefan Behnel
Guest
Posts: n/a
 
      10-17-2012
Hi,

note that it's best to reply to responses you get, rather than starting a
new thread on the same topic. It helps in building up context and in
keeping details together at one point in the archive for users who run into
similar problems later.

Tharanga Abeyseela, 17.10.2012 07:47:
> I need to remove the parent node, if a particular match found.
>
> ex:
>
> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
> <Feed xmlns="http://schemas.xxxx.xx/xx/2011/06/13/xx">
> <TVEpisode>
> <Provider>0x5</Provider>
> <ItemId>http://fxxxxxxl</ItemId>
> <Title>WWE</Title>
> <SortTitle>WWE </SortTitle>
> <Description>WWE</Description>
> <IsUserGenerated>false</IsUserGenerated>
> <Images>
> <Image>
> <ImagePurpose>BoxArt</ImagePurpose>
> <Url>https://xxxxxx.xx/@006548-thumb.jpg</Url>
> </Image>
> </Images>
> <LastModifiedDate>2012-10-16T00:00:19.814+11:00</LastModifiedDate>
> <Genres>
> <Genre>xxxxx</Genre>
> </Genres>
> <ParentalControl>
> <System>xxxx</System>
> <Rating>M</Rating>
>
>
> if i found <Rating>NC</Rating>, i need to remove the <TVEpisode> from
> the XML. i have TVseries,Movies,and several items. (they also have
> Rating element). i need to remove all if i found the NC keyword.inside
> <Ratging>
>
>
> im using following code.
>
> when i do the following on python shell i can see the result (NC,M,etc)
>
> >>> x[1].text

> 'NC'
>
> but when i do this inside the script, im getting the following error.
>
> Traceback (most recent call last):
> File "./test.py", line 10, in ?
> x = child.find('Rating').text
> AttributeError: 'NoneType' object has no attribute 'text'
>
>
> but how should i remove the parent node if i found the string "NC" i
> need to do this for all elements (TVEpisode,Movies,TVshow etc)
> how can i use python to remove the parent node if that string found.
> (not only TVEpisodes, but others as well)
>
>
> #!/usr/bin/env python
>
> import elementtree.ElementTree as ET
>
> tree = ET.parse('test.xml')
> root = tree.getroot()
>
>
> for child in root.findall(".//{http://schemas.CCC.com/CCC/2011/06/13/CC}Rating"):
> x = child.find('Rating').text
> if child[1].text == 'NC':
> print "found"
> root.remove('TVEpisode') ?????
> tree.write('output.xml')


The trick is to search for the parent node, then let your code find out if
you need to remove it or not by traversing its subtree.

Stefan


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
RE:ElementTree Issue - Search and remove elements Tharanga Abeyseela Python 0 10-18-2012 01:05 AM
re:ElementTree Issue - Search and remove elements Tharanga Abeyseela Python 0 10-17-2012 10:31 PM
re: ElementTree Issue - Search and remove elements Tharanga Abeyseela Python 0 10-17-2012 07:19 AM
ElementTree Issue - Search and remove elements Tharanga Abeyseela Python 2 10-17-2012 07:01 AM
ANN: ElementFilter - find and remove elements and attributes from ElementTree XML Gerard Flanagan Python 0 10-14-2006 08:22 PM



Advertisments