내 문제가 매우 구체적이어서 설명이 필요하므로 매우 긴 질문이 될 것입니다.Python - ElementTree를 사용하는 XML 파일의 데이터 분석
I 여러 'spreekbeurten'이 포함 된 XML 파일이 있습니다. 나는 spreekbeurten에서 모든 텍스트를 얻고 싶다. 문제는 spreekbeurten이 'al-group'을 가지고 있지 않으며, 어떤 것이 그렇다는 것이다. (XML 파일 적힌 예를 조각 아래 코드를 참조하십시오)
<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'는 '알 - 그룹'이 포함 된 경우 I는 '대부분'의 예에서 첫 번째 '알'을 얻을 수 있다는 것입니다을하지 다른 모든 단어들. 어떻게 'spreekbeurt'에 'al'문장의 모든 텍스트를 골라야하고 첫 번째 문장 만 골라야하는지 어떻게 확인할 수 있습니까?
미리 감사드립니다.