Búsqueda de sitios web

¿Cómo convertir listas a XML en Python?


El lenguaje de marcado extensible (XML) es un formato de intercambio de datos popular que se utiliza en muchas aplicaciones. Proporciona una forma estandarizada de representar datos que pueden ser fácilmente comprendidos tanto por humanos como por máquinas. En muchos casos, es necesario convertir los datos almacenados en listas de Python al formato XML para diversos fines, como el intercambio o el almacenamiento de datos.

En este artículo, exploraremos diferentes enfoques para convertir listas de Python al formato XML utilizando las bibliotecas integradas de Python.

A continuación se muestran los dos enfoques diferentes que podemos utilizar para convertir listas de Python a XML en puntos.

Usando la biblioteca ElementTree

  • Importe la biblioteca xml.etree.ElementTree.

  • Cree una instancia de ElementTree.Element para el elemento raíz del árbol XML.

  • Itere sobre la lista y cree elementos secundarios para cada elemento de la lista.

  • Agregue los elementos secundarios al elemento raíz.

  • Utilice el objeto ElementTree.ElementTree para escribir los datos XML en un archivo o cadena.

Considere el código que se muestra a continuación para el enfoque anterior.

Ejemplo

import xml.etree.ElementTree as ET

# Create a list
my_list = ['apple', 'banana', 'orange']

# Create the root element of the XML tree
root = ET.Element('fruits')

# Iterate over the list and create child elements
for item in my_list:
	fruit = ET.SubElement(root, 'fruit')
	fruit.text = item

# Use the ElementTree object to write the XML data to a file or string
tree = ET.ElementTree(root)
tree.write('fruits.xml')

Explicación

  • El código primero importa el módulo xml.etree.ElementTree, que está incluido en la biblioteca estándar de Python.

  • Se crea una lista de Python my_list con tres elementos de cadena.

  • El código crea un elemento raíz para el árbol XML utilizando el método Element() de ElementTree y lo asigna a la variable raíz. El argumento pasado a Element() es el nombre de etiqueta del elemento raíz.

  • Luego, el código itera sobre cada elemento de la lista utilizando un bucle for. Para cada elemento, crea un elemento secundario debajo del elemento raíz utilizando el método SubElement() del objeto raíz. El primer argumento pasado a SubElement() es el nombre de la etiqueta del elemento secundario. El segundo argumento, elemento, es el contenido de texto del elemento secundario.

  • Finalmente, el código utiliza el método ElementTree() de ElementTree para crear un objeto ElementTree con root como elemento raíz. Luego se llama al método write() de ElementTree para escribir los datos XML en un archivo llamado frutas.xml.

Producción

<fruits>
  <fruit>apple</fruit>
  <fruit>banana</fruit>
  <fruit>orange</fruit>
</fruits>

Usando la biblioteca lxml

  • Importe la biblioteca lxml.

  • Cree una instancia de lxml.Element para el elemento raíz del árbol XML.

  • Itere sobre la lista y cree elementos secundarios para cada elemento de la lista.

  • Agregue los elementos secundarios al elemento raíz.

  • Utilice el método lxml.etree.tostring() para convertir el árbol XML en una cadena.

Considere el código que se muestra a continuación.

Ejemplo

import xml.etree.ElementTree as ET

# Create a list
my_list = ['apple', 'banana', 'orange']

# Create the root element of the XML tree
root = ET.Element('fruits')

# Iterate over the list and create child elements
for item in my_list:
	fruit = ET.SubElement(root, 'fruit')
	fruit.text = item

# Use the ElementTree object to write the XML data to a file or string
tree = ET.ElementTree(root)
tree.write('fruits.xml')

Explicación

  • El código primero importa el módulo xml.etree.ElementTree, que está incluido en la biblioteca estándar de Python.

  • Se crea una lista de Python my_list con tres elementos de cadena.

  • El código crea un elemento raíz para el árbol XML utilizando el método Element() de ElementTree y lo asigna a la variable raíz. El argumento pasado a Element() es el nombre de etiqueta del elemento raíz.

  • Luego, el código itera sobre cada elemento de la lista utilizando un bucle for. Para cada elemento, crea un elemento secundario debajo del elemento raíz utilizando el método SubElement() del objeto raíz. El primer argumento pasado a SubElement() es el nombre de la etiqueta del elemento secundario. El segundo argumento, elemento, es el contenido de texto del elemento secundario.

  • Finalmente, el código utiliza el método ElementTree() de ElementTree para crear un objeto ElementTree con root como elemento raíz. Luego se llama al método write() de ElementTree para escribir los datos XML en un archivo llamado frutas.xml.

Producción

<fruits>
  <fruit>apple</fruit>
  <fruit>banana</fruit>
  <fruit>orange</fruit>
</fruits>

Conclusión

Ambos enfoques que analizamos en este artículo implican la creación de una estructura de árbol XML a partir de la lista, en la que cada elemento de la lista corresponde a un elemento secundario en el árbol XML.

Artículos relacionados: