У меня есть этот XML-файл:
<do title='Example document' date='today'>
<db descr='First level'>
<P>
Some text here that
<af d='reference 1'>continues</af>
but then has some more stuff.
</P>
</db>
, и мне нужно проанализировать его, чтобы извлечь его текст.Я использую xml.etree.ElementTree
для этого ( см. Документацию ).
Это простой код, который я использую для анализа и изучения файла:
import xml.etree.ElementTree as ET
tree = ET.parse(file_path)
root = tree.getroot()
def explore_element(element):
print(element.tag)
print(element.attrib)
print(element.text)
for child in element:
explore_element(child)
explore_element(root)
Все работаеткак и ожидалось, за исключением того, что элемент <P>
не имеет полного текста.В частности, мне кажется, что мне не хватает «но потом есть еще кое-что» (текст в <P>
, который идет после элемента <af>
).
XML-файл является данным, поэтому я не могу улучшитьдаже если есть лучший рекомендуемый способ написания (а их слишком много, чтобы попытаться исправить вручную).
Есть ли способ получить весь текст?
вывод, который выдает мой код (в случае, если он помогает), таков:
do
{'title': 'Example document', 'date': 'today'}
db
{'descr': 'First level'}
P
{}
Some text here that
af
{'d': 'reference 1'}
continues
EDIT :
Принятый ответ заставил меня понять, что я не читал документацию каккак следует.Люди с подобными проблемами могут также найти полезными .tail .