El ElementTree.parse lee de un archivo, ¿cómo puedo usar esto si ya tengo los datos XML en una cadena?
Tal vez me falte algo aquí, pero debe haber una manera de usar ElementTree sin escribir la cadena en un archivo y volver a leerlo.
El ElementTree.parse lee de un archivo, ¿cómo puedo usar esto si ya tengo los datos XML en una cadena?
Tal vez me falte algo aquí, pero debe haber una manera de usar ElementTree sin escribir la cadena en un archivo y volver a leerlo.
Respuestas:
Si está usando
xml.etree.ElementTree.parse
para analizar desde un archivo, entonces puede usarxml.etree.ElementTree.fromstring
para analizar desde texto.Ver xml.etree.ElementTree
fuente
getroot()
por estoET.ElementTree(ET.fromstring(xmlstring))
Puede analizar el texto como una cadena, lo que crea un elemento y crear un árbol de elementos utilizando ese elemento.
Me acabo de encontrar con este problema y la documentación, aunque completa, no es muy sencilla sobre la diferencia de uso entre los métodos
parse()
yfromstring()
.fuente
root = ET.fromstring(xmlstring)
. EqualsET.parse('file.xml').getroot()
: docs.python.org/3.6/library/…Necesitas el
xml.etree.ElementTree.fromstring(text)
fuente
io.StringIO es otra opción para introducir XML en xml.etree.ElementTree :
Pase el mouse, no afecta la declaración XML en la que se supondría que está
tree
(aunque eso es necesario para ElementTree.write () ). Consulte Cómo escribir una declaración XML usando xml.etree.ElementTree .fuente