У меня есть xml do c в следующем формате
<samples>
<sample count="10" intentref="none">
Remember to
<annotation conceptref="cf1">
<annotation conceptref="cf2">record</annotation>
</annotation>
the
<annotation conceptref="cf3">movie</annotation>
<annotation conceptref="cf4">Taxi driver</annotation>
</sample>
</samples>
, и я хотел бы извлечь весь текст, либо тот, который не заключен в тег аннотации, либо тот, что в аннотации тег, чтобы восстановить исходную фразу. Итак, мой вывод будет -> Не забудьте записать mov ie Таксист
Проблема, по-видимому, в том, что нет способа получить токен 'Здесь фрагмент моего кода
import xml.etree.ElementTree as ET
samples = ET.fromstring("""
<samples>
<sample count="10" intentref="none">Remember to<annotation conceptref="cf1"><annotation conceptref="cf2">record</annotation></annotation>the<annotation conceptref="cf3">movie</annotation><annotation conceptref="cf4">Taxi driver</annotation></sample>
</samples>
""")
for sample in samples.iter("sample"):
print ('***'+sample.text+'***'+sample.tail)
for annotation in sample.iter('annotation'):
print(annotation.text)
for nested_annotation in annotation.getchildren():
print(nested_annotation.text)
Я думал, что вложенная аннотация могла бы помочь ... но нет, вот результат
***Remember to'***
None
record
record
movie
Taxi driver