これはかなり長い質問です。私の問題は非常に具体的で、何か説明が必要なので残念です。Python - ElementTreeを使ったXMLファイルのデータ解析
I複数の 'spreekbeurten'を含むXMLファイルがあります。私はspreekbeurtenからすべてのテキストを取得したい、問題は、いくつかのspreekbeurtenは 'アルグループ'といくつかのことを持っていないということです。 (xmlファイルofthe例ピースのために以下のコードを参照してください)
<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 one word</al>
</tekst>
</spreekbeurt>
</handelingen>
私は、話者の対応するテキストとspreker彼の「voorvoegsel」と「achternaaam」を取得したいです。これを行うために、私は次のコードを書いた:
def extractingText(filepath):
#Checking the size to 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 we naar handelingen (het gedeelte waar de gesproken stukken in staan)
for handelingen in root.iter('handelingen'):
spreekbeurt = []
#Hiermee kijken we naar alle spreekbeuten van de personen
for spreekbeurt in handelingen.iter('spreekbeurt'):
achternaam = spreekbeurt.find('spreker/naam/achternaam').text
voorvoegsel = spreekbeurt.find('spreker/voorvoegsels').text
#Defining what the text is, sometimes it is withn an al-group and sometimes it isn't
text = spreekbeurt.find('tekst/al-groep/al') #<- TO FIX I SUPPOSE I NEED TO ADD A FOR 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
問題は「spreekbeurt」「はアル・グループ」を含んでいる場合、私は唯一の「多く」の例にある最初の「アル」を得るということですがありませんすべての他の言葉。 'spreekbeurt'に 'a'が含まれていれば、最初の文だけでなく、 'al'文のすべてのテキストを選択することができますか?
ありがとうございます!