Вы можете просто найти все теги имен и получить текстовое значение, используя понимание списка, независимо от количества тегов имен.
data.xml
<data>
<student>
<id>A100</id>
<name>John</name>
<name>Johny</name>
<dob>11/01/1999</dob>
</student>
<student>
<id>A100</id>
<name>Adam</name>
<name>David</name>
<dob>11/01/1999</dob>
</student>
<student>
<id>A100</id>
<name>Barry</name>
<name>Liam</name>
<dob>11/01/1999</dob>
</student>
</data>
Мы можем использовать синтаксис xpath, чтобы найти все элементы имени в дереве, которые имеют родительский элемент ученика. Мы заключаем это в понимание списка Python, чтобы захватить только имена в списке
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
names = []
seperator = '-----'
students = tree.findall('student')
for student in students:
student_names = [name.text for name in student.findall('name')]
names += student_names + [seperator]
#pop the last seperator off the end and print the list
names.pop()
print(names)
OUTPUT
['John', 'Johny', '-----', 'Adam', 'David', '-----', 'Barry', 'Liam']