2009-03-15 8 views

risposta

54

Se si utilizza xml.etree.ElementTree.parse per analizzare da un file, è possibile utilizzare xml.etree.ElementTree.fromstring per analizzare dal testo.

Vedi xml.etree.ElementTree

+24

Il problema è che ElementTree.fromstring genera un elemento e non un ElementTree! Qualcuno sa come aggirare questo? –

+3

Stesso problema di @ SamuelLampa menzionato. Non sono un ElementTree, non sono in grado di fare 'getroot()' per questo –

+10

@SamuelLampa vedi [risposta di dgassaway] (http://stackoverflow.com/a/18281386/12744), usa 'ET.ElementTree (ET .fromstring (xmlstring)) ' –

2

E 'sulla pagina si è collegato. Usa fromstring.

14

È necessario il xml.etree.ElementTree.fromstring (testo)

from xml.etree.ElementTree import XML, fromstring, tostring 
myxml = fromstring(text) 
119

è possibile analizzare il testo come una stringa, che crea un elemento, e creare un ElementTree utilizzando tale Elemento.

import xml.etree.ElementTree as ET 
tree = ET.ElementTree(ET.fromstring(xmlstring)) 

Ho appena imbattuto in questo problema e la relativa documentazione, mentre la completa, non è molto semplice sulla differenza di utilizzo tra i metodi parse() e fromstring().

+24

Questa dovrebbe essere la risposta accettata. – fiatjaf

+2

La seconda riga può essere semplicemente 'root = ET.fromstring (xmlstring)'. Uguale a 'ET.parse ('file.xml'). Getroot()': https://docs.python.org/3.6/library/xml.etree.elementtree.html#parsing-xml –