Python - Data analysis of XML file with ElementTree -


this going pretty long question since problem quite specific , needs explaning sorry that.

i have xml file contains multiple 'spreekbeurten'. want obtain text spreekbeurten, problem spreekbeurten not have 'al-group' , do. (see code below example piece ofthe xml file)

  <handelingen>       <spreekbeurt nieuw="ja">         <spreker>              <voorvoegsels>de heer</voorvoegsels>           <naam>             <achternaam>recourt</achternaam>           </naam> (<politiek>pvda</politiek>):</spreker>         <tekst status="goed">           <al-groep>                 <al>much</al>                 <al>very</al>                 <al>hungry</al>                 <al>i am</al>                 <al>hello.</al>               </al-groep>             </tekst>           </spreekbeurt>        <spreekbeurt nieuw="nee">         <spreker>           <voorvoegsels>de heer</voorvoegsels>           <naam>             <achternaam>van raak</achternaam>           </naam> (<politiek>sp</politiek>):</spreker>         <tekst status="goed">           <al>just 1 word</al>         </tekst>       </spreekbeurt>    </handelingen> 

i want obtain spreker 'voorvoegsel' , 'achternaaam' corresponding text of speaker. wrote following code:

def extractingtext(filepath):     #checking size keep empty files (size = 0 bytes) out!     statsinfo = os.stat(filepath)         if int(statsinfo.st_size) == 0:         return none      tree = et.parse(filepath)     root = tree.getroot()     #hiermee kijken naar handelingen (het gedeelte waar de gesproken stukken in staan)     handelingen in root.iter('handelingen'):         spreekbeurt = []         #hiermee kijken naar alle spreekbeuten van de personen         spreekbeurt in handelingen.iter('spreekbeurt'):             achternaam = spreekbeurt.find('spreker/naam/achternaam').text             voorvoegsel = spreekbeurt.find('spreker/voorvoegsels').text               #defining text is, withn al-group , isn't             text = spreekbeurt.find('tekst/al-groep/al') #<- fix suppose need add loop here?             if text == none:                 text = spreekbeurt.find('tekst/al')             #zoals je ziet heb ik nu voor alle spreekbeurten een text gevonden             print text.text      return none 

the problem if 'spreekbeurt' contains 'al-group' first 'al' in example 'much' , not other words. how make sure if 'spreekbeurt' contains pick text in 'al' statements , not first one?

thanks in advance!

i believe answer in xml.etree.elementtree.element.findall . put result in list , check if list no elements.


Comments

Popular posts from this blog

javascript - Clear button on addentry page doesn't work -

c# - Selenium Authentication Popup preventing driver close or quit -

tensorflow when input_data MNIST_data , zlib.error: Error -3 while decompressing: invalid block type -