ElementTree.parse membaca dari sebuah file, bagaimana saya bisa menggunakan ini jika saya sudah memiliki data XML dalam sebuah string?
Mungkin saya melewatkan sesuatu di sini, tetapi pasti ada cara untuk menggunakan ElementTree tanpa menuliskan string ke file dan membacanya lagi.
Jawaban:
Jika Anda menggunakan
xml.etree.ElementTree.parse
untuk mengurai dari file, maka Anda dapat menggunakanxml.etree.ElementTree.fromstring
untuk mengurai dari teks.Lihat xml.etree.ElementTree
sumber
getroot()
untuk iniET.ElementTree(ET.fromstring(xmlstring))
Anda dapat mengurai teks sebagai string, yang membuat Elemen, dan membuat ElementTree menggunakan Elemen itu.
Saya baru saja menemukan masalah ini dan dokumentasinya, meskipun lengkap, tidak terlalu jelas tentang perbedaan penggunaan antara metode
parse()
danfromstring()
.sumber
root = ET.fromstring(xmlstring)
. SetaraET.parse('file.xml').getroot()
: docs.python.org/3.6/library/…Anda membutuhkan
xml.etree.ElementTree.fromstring(text)
sumber
io.StringIO adalah opsi lain untuk memasukkan XML ke xml.etree.ElementTree :
Hovever, itu tidak mempengaruhi deklarasi XML yang diasumsikan ada
tree
(meskipun itu diperlukan untuk ElementTree.write () ). Lihat Bagaimana menulis deklarasi XML menggunakan xml.etree.ElementTree .sumber