У меня есть строка, содержащая XML-данные, которые возвращаются из HTTP-запроса.Python ElementTree: Разбор строки и получение экземпляра ElementTree
Я использую ElementTree для анализа данных, и я хочу, чтобы затем искать рекурсивно для элемента.
По this question, я могу только искать рекурсивно result.findall()
если result
имеет тип ElementTree
, а не типа Element
.
Теперь xml.etree.ElementTree.fromstring()
, используется для разбора строки, возвращает Element
объекта, в то время как xml.etree.ElementTree.parse()
, используемые для разбора файла, возвращает ElementTree
объекта.
Мой вопрос: как я могу разобрать строку и получить экземпляр ElementTree
? (без безумия, как писать временный файл)
Я просто хочу add - для тех, кто использует lxml - в lxml (где элемент всегда принадлежит документу/дереву, даже если неявный), вы можете использовать метод getrootttree(). – Steven
Спасибо! Действительно раздражает дизайн API в etree, чтобы иметь разные типы вывода только в зависимости от источника ввода. На самом деле это путано :( –
Это действительно не очень понятно в документации. «Fromstring() анализирует XML из строки непосредственно в элемент, который является корневым элементом разбора дерева. Другие функции парсинга могут создавать ElementTree.» – Snorfalorpagus