O ElementTree.parse lê um arquivo, como posso usar isso se já tenho os dados XML em uma string?
Talvez eu esteja faltando alguma coisa aqui, mas deve haver uma maneira de usar o ElementTree sem gravar a string em um arquivo e lê-la novamente.
O ElementTree.parse lê um arquivo, como posso usar isso se já tenho os dados XML em uma string?
Talvez eu esteja faltando alguma coisa aqui, mas deve haver uma maneira de usar o ElementTree sem gravar a string em um arquivo e lê-la novamente.
Respostas:
Se você estiver usando
xml.etree.ElementTree.parse
para analisar de um arquivo, poderá usarxml.etree.ElementTree.fromstring
para analisar de texto.Veja xml.etree.ElementTree
fonte
getroot()
por issoET.ElementTree(ET.fromstring(xmlstring))
Você pode analisar o texto como uma string, o que cria um elemento e criar um ElementTree usando esse elemento.
Acabei de encontrar esse problema e a documentação, embora completa, não é muito direta quanto à diferença de uso entre os métodos
parse()
efromstring()
.fonte
root = ET.fromstring(xmlstring)
. Igual aET.parse('file.xml').getroot()
: docs.python.org/3.6/library/…Você precisa do
xml.etree.ElementTree.fromstring(text)
fonte
io.StringIO é outra opção para obter XML em xml.etree.ElementTree :
No entanto, isso não afeta a declaração XML que se presumiria estar
tree
(embora isso seja necessário para ElementTree.write () ). Consulte Como escrever uma declaração XML usando xml.etree.ElementTree .fonte