Elementree and insert new element if it is not present

Tharanga Abeyseela tharanga.abeyseela at gmail.com
Thu Jan 23 20:44:24 EST 2014


Hi,

I have the  following xml,a nd i need to add Description element if it is
not present.

<TVSeries><Provider>xxx</Provider><Title>X</Title><SortTitle>World's
Fastest Indian, The</SortTitle></TvSeries>
<Movies><Provider>xxx</Provider><Title>The World's Fastest
Indian</Title><Description> The World's Fastest Indian
</Description><SortTitle>World's Fastest Indian,
The</SortTitle></Movies>

here is my function.

def insert_description(root,type):
        for child in root.findall('.//{
http://schemas.microsoft.com/xxx/2011/06/13/ingest}%s' % type):
                title=child.find('.//{
http://schemas.microsoft.com/xxx/2011/06/13/ingestion}Title').text
                try:
                        if child.find('Description') is None:
                                new_desc = ET.Element('Description')
                                new_desc.text = title
                                 child.insert(1, new_desc)

                except:
                        pass

root is the xm lfile, type includes (movies,shows,dramas etc)

But this will add the description without checking the "Description" is
exist. i have a problem with the following statement. (i guess)

if child.find('Description') is None:

what i'm doing wrong here, appreciate your help

Regards,
Tharanga
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20140124/02d3dcf3/attachment.html>


More information about the Python-list mailing list