ElementTree.parse czyta z pliku, jak mogę tego użyć, jeśli mam już dane XML w ciągu?
Może czegoś mi brakuje, ale musi istnieć sposób na użycie elementu ElementTree bez zapisywania ciągu znaków do pliku i ponownego czytania.
ElementTree.parse czyta z pliku, jak mogę tego użyć, jeśli mam już dane XML w ciągu?
Może czegoś mi brakuje, ale musi istnieć sposób na użycie elementu ElementTree bez zapisywania ciągu znaków do pliku i ponownego czytania.
Odpowiedzi:
Jeśli używasz
xml.etree.ElementTree.parse
do analizowania z pliku, możesz użyćxml.etree.ElementTree.fromstring
do analizy tekstu.Zobacz xml.etree.ElementTree
źródło
getroot()
tegoET.ElementTree(ET.fromstring(xmlstring))
Możesz przeanalizować tekst jako ciąg, który tworzy element, i utworzyć element ElementTree przy użyciu tego elementu.
Właśnie natknąłem się na ten problem, a dokumentacja, chociaż jest kompletna, nie jest bardzo prosta w zakresie różnic w użyciu między metodami
parse()
ifromstring()
.źródło
root = ET.fromstring(xmlstring)
. Równa sięET.parse('file.xml').getroot()
: docs.python.org/3.6/library/…Potrzebujesz
xml.etree.ElementTree.fromstring(text)
źródło
io.StringIO to kolejna opcja pobierania XML do xml.etree.ElementTree :
Jednak nie wpływa to na deklarację XML, którą można by przypuszczać
tree
(chociaż jest to potrzebne dla ElementTree.write () ). Zobacz Jak napisać deklarację XML przy użyciu xml.etree.ElementTree .źródło