2009-03-15 18 views

Respuesta

54

Si usa xml.etree.ElementTree.parse para analizar de un archivo, puede usar xml.etree.ElementTree.fromstring para analizar el texto.

Ver xml.etree.ElementTree

+24

El problema es que ElementTree.fromstring genera un elemento, ¡y no ElementTree! ¿Alguien sabe cómo evitar esto? –

+3

Se ha mencionado el mismo problema que @SamuelLampa. Yo no soy un ElementTree, no puedo hacer 'getroot()' para este –

+10

@SamuelLampa ver [la respuesta de dgassaway] (http://stackoverflow.com/a/18281386/12744), usar 'ET.ElementTree (ET .fromstring (xmlstring)) ' –

2

Está en la página enlazada. Use fromstring.

14

Es necesario el xml.etree.ElementTree.fromstring (texto)

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

puede analizar el texto como una cadena, lo que crea un elemento, y crear un elementtree uso de ese Elemento.

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

me encontré con este tema y la documentación, mientras completa, no es muy directo sobre la diferencia de uso entre los métodos parse() y fromstring().

+24

Esta debería ser la respuesta aceptada. – fiatjaf

+2

La segunda línea puede ser simplemente 'root = ET.fromstring (xmlstring)'. Es igual a 'ET.parse ('file.xml'). Getroot()': https://docs.python.org/3.6/library/xml.etree.elementtree.html#parsing-xml –

Cuestiones relacionadas