все Python 3xml.etree.ElementTreeфункция
xml.etree.ElementTree.parse()
разбор
Читает XML из файла (имени или файлового объекта) и возвращает ElementTree; корень достают методом getroot().
Синтаксис
tree = ET.parse(source, parser=None)
root = tree.getroot()
Частая ошибка — вызывать find() у результата и удивляться разнице с fromstring: parse() отдаёт обёртку ElementTree, а fromstring() — сам Element. Кодировку файла парсер берёт из XML-декларации (по умолчанию UTF-8), поэтому файл лучше передавать именем или открытым в режиме 'rb', а не текстовым потоком с чужой кодировкой. parse() читает документ целиком в память; для гигабайтных файлов нужен iterparse(). Для недоверенных файлов — defusedxml.
Примеры
import xml.etree.ElementTree as ET
with open('books.xml', 'w', encoding='utf-8') as f:
f.write('<lib><book>Dune</book><book>Solaris</book></lib>')
tree = ET.parse('books.xml')
print(type(tree).__name__) # → ElementTree
root = tree.getroot()
print(root.tag, [b.text for b in root]) # → lib ['Dune', 'Solaris']
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности