Parse XML using Python and xml.etree -


i have xml file , i'd read data out of using python's xml.etree.

let's xml file :

<a>    <b>       <c>          <d>this text want retrieve</d>       </c>    </b> </a> 

what did :

document = elementtree.parse('file.xml') dtofind = document.find('d') print(dtofind.text) 

but gave me following error :

    print(dtofind.text) attributeerror: 'nonetype' object has no attribute 'text' 

what did wrong? , how can fix it?

thanks!

you can use xpath more sophesticated parsing combined find finding node recursively

in case:

dtofind = document.find('.//d') 

the documentation points more structured parsing using xpath - encourage that.

demo

>>> xml.etree import elementtree et >>> content = """<a> ...    <b> ...       <c> ...          <d>this text want retrieve</d> ...       </c> ...    </b> ... </a> ... """ >>>  >>> xx = et.fromstring(file) #you doing .parse() >>> xx.find('d') #returns none, finds first level children >>> xx.find('.//d') <element 'd' @ 0xf1b550> >>> d = xx.find('.//d') >>> d.text 'this text want retrieve' 

Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -