Die ElementTree.parse liest aus einer Datei. Wie kann ich diese verwenden, wenn ich die XML-Daten bereits in einer Zeichenfolge habe?
Vielleicht fehlt mir hier etwas, aber es muss eine Möglichkeit geben, den ElementTree zu verwenden, ohne die Zeichenfolge in eine Datei zu schreiben und erneut zu lesen.
Antworten:
Wenn Sie
xml.etree.ElementTree.parse
zum Parsen aus einer Datei verwenden, können Siexml.etree.ElementTree.fromstring
zum Parsen aus Text verwenden.Siehe xml.etree.ElementTree
quelle
getroot()
für diesenET.ElementTree(ET.fromstring(xmlstring))
Sie können den Text als Zeichenfolge analysieren, die ein Element erstellt, und mit diesem Element einen Elementbaum erstellen.
Ich bin gerade auf dieses Problem gestoßen, und die Dokumentation ist zwar vollständig, aber hinsichtlich des Unterschieds in der Verwendung zwischen den Methoden
parse()
und nicht sehr einfachfromstring()
.quelle
root = ET.fromstring(xmlstring)
. EqualsET.parse('file.xml').getroot()
: docs.python.org/3.6/library/...Du brauchst das
xml.etree.ElementTree.fromstring(text)
quelle
io.StringIO ist eine weitere Option, um XML in xml.etree.ElementTree abzurufen :
Es hat jedoch keinen Einfluss auf die XML-Deklaration, in der man sich befinden würde
tree
(obwohl dies für ElementTree.write () erforderlich ist ). Siehe So schreiben Sie eine XML-Deklaration mit xml.etree.ElementTree .quelle