Le ElementTree.parse lit à partir d'un fichier, comment puis-je l'utiliser si j'ai déjà les données XML dans une chaîne?
Il me manque peut-être quelque chose ici, mais il doit y avoir un moyen d'utiliser ElementTree sans écrire la chaîne dans un fichier et le relire.
Réponses:
Si vous utilisez
xml.etree.ElementTree.parse
pour analyser à partir d'un fichier, vous pouvez utiliserxml.etree.ElementTree.fromstring
pour analyser à partir de texte.Voir xml.etree.ElementTree
la source
getroot()
pour çaET.ElementTree(ET.fromstring(xmlstring))
Vous pouvez analyser le texte sous forme de chaîne, ce qui crée un élément et créer un ElementTree à l'aide de cet élément.
Je viens de tomber sur ce problème et la documentation, bien que complète, n'est pas très simple sur la différence d'utilisation entre les méthodes
parse()
etfromstring()
.la source
root = ET.fromstring(xmlstring)
. Égale àET.parse('file.xml').getroot()
: docs.python.org/3.6/library/…Vous avez besoin du
xml.etree.ElementTree.fromstring(text)
la source
io.StringIO est une autre option pour obtenir du XML dans xml.etree.ElementTree :
Hovever, cela n'affecte pas la déclaration XML dans laquelle on supposerait être
tree
(bien que cela soit nécessaire pour ElementTree.write () ). Consultez Comment écrire une déclaration XML à l'aide de xml.etree.ElementTree .la source