ElementTree.parse bir dosyadan okur, eğer bir dizede XML verisine zaten sahipsem bunu nasıl kullanabilirim?
Belki burada bir şeyi özlüyorum ama ElementTree'yi dizeyi bir dosyaya yazmadan ve tekrar okumadan kullanmanın bir yolu olmalı.
ElementTree.parse bir dosyadan okur, eğer bir dizede XML verisine zaten sahipsem bunu nasıl kullanabilirim?
Belki burada bir şeyi özlüyorum ama ElementTree'yi dizeyi bir dosyaya yazmadan ve tekrar okumadan kullanmanın bir yolu olmalı.
Yanıtlar:
xml.etree.ElementTree.parseBir dosyadan ayrıştırmak için kullanıyorsanız xml.etree.ElementTree.fromstring, metinden ayrıştırmak için kullanabilirsiniz .
getroot()bunun için
Metni bir dize olarak ayrıştırabilir, bu bir Eleman oluşturur ve bu Elemanı kullanarak bir ElementTree oluşturabilirsiniz.
import xml.etree.ElementTree as ET
tree = ET.ElementTree(ET.fromstring(xmlstring))
Bu sorunla yeni karşılaştım ve dokümantasyon tamamlanmış olsa da, parse()ve fromstring()yöntemleri arasındaki kullanım farkı konusunda çok açık değil .
root = ET.fromstring(xmlstring). Eşittir ET.parse('file.xml').getroot(): docs.python.org/3.6/library/…
io.StringIO , XML'i xml.etree.ElementTree'ye almak için başka bir seçenektir :
import io
f = io.StringIO(xmlstring)
tree = ET.parse(f)
root = tree.getroot()
Bununla birlikte, içinde olduğu varsayılacak XML bildirimini etkilemez tree( ElementTree.write () için gerekli olmasına rağmen ). Xml.etree.ElementTree kullanarak XML bildirimi nasıl yazılır konusuna bakın .