目次
1. Introducción
Python es un lenguaje de programación flexible que permite manejar fácilmente diversos formatos de datos. Entre ellos, XML(Extensible Markup Language) se utiliza con frecuencia para el intercambio y el almacenamiento de datos estructurados, y se emplea ampliamente en respuestas de API y archivos de configuración. En Python, se puede manipular XML fácilmente utilizando la biblioteca estándar y bibliotecas externas. En este artículo, explicamos de manera clara desde las operaciones básicas hasta las aplicaciones avanzadas de XML con Python.2. Introducción a las bibliotecas para trabajar con XML en Python
2.1 Biblioteca estándar: xml.etree.ElementTree
La biblioteca estándar de Pythonxml.etree.ElementTree
es una herramienta práctica que facilita la lectura y escritura de archivos XML, así como la exploración y edición de estructuras en árbol。- Fundamentos del parseo:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() print(root.tag) # Salida: "data"
En este código se lee el archivo XML llamadodata.xml
y se muestra la etiqueta del elemento raíz. Puedes comprobar que el resultado de salida es «data». - Manejo de errores cuando el archivo no existe:
Si el archivo no existe, se lanzará
FileNotFoundError
, por lo que puedes añadir un manejo de excepciones como se muestra a continuación.try: tree = ET.parse('data.xml') root = tree.getroot() except FileNotFoundError: print("No se encontró el archivo.")
2.2 Biblioteca externa: lxml
Cuando se necesitan operaciones avanzadas con XML, se recomienda la bibliotecalxml
. lxml
admite un potente procesamiento de XML con XPath y XSLT, y permite realizar fácilmente operaciones que resultan difíciles con la biblioteca estándar。- Obtención de elementos mediante XPath:
from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country[@name="Liechtenstein"]') print(countries[0].tag) # Salida: "country"
Este código obtiene el elementocountry
cuyo atributoname
es «Liechtenstein».

3. Análisis y manipulación de XML
3.1 Procedimiento básico de análisis
Para analizar un archivo XML y manipular la estructura en árbol, useparse()
de xml.etree.ElementTree
. Este método carga el archivo XML y obtiene el elemento raíz del árbol.- Análisis desde un archivo:
import xml.etree.ElementTree as ET tree = ET.parse('example.xml') root = tree.getroot() print(root.tag) # Salida: "rootTag"
Este código carga el archivo XMLexample.xml
y muestra el nombre de la etiqueta del elemento raíz.
3.2 Búsqueda de elementos y manipulación de atributos
Para buscar elementos XML, usefind()
y findall()
. Esto permite obtener fácilmente elementos o atributos específicos。- Búsqueda de elementos y obtención de atributos:
country = root.find('country') print(country.get('name')) # Salida: "Liechtenstein"
- Manipulación de atributos:
Para manipular los atributos de un elemento XML, obténgalos con
get()
y configúrelos conset()
.country.set('currency', 'CHF') print(country.attrib) # Salida: {'name': 'Liechtenstein', 'currency': 'CHF'}
4. Edición y guardado de XML
4.1 Cómo editar elementos
Puedes editar el contenido del XML modificando el texto y los atributos de los elementos XML. Por ejemplo, para cambiar el texto de un elemento, procede así:- Edición del texto de un elemento:
rank = root.find('.//rank') rank.text = '2' print(rank.text) # Salida: "2"
4.2 Exportar a un archivo XML
Para guardar el XML modificado en un archivo, usa el métodowrite()
.- Guardar el XML:
tree.write('updated_data.xml')

5. Procesamiento avanzado con bibliotecas externas
5.1 Operaciones avanzadas de XML con lxml
Al utilizar la bibliotecalxml
, es posible realizar búsquedas complejas con XPath y convertir XML a otros formatos mediante XSLT.- Búsqueda de elementos con XPath:
from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country') for country in countries: print(country.get('name'))
5.2 Transformación de XML con XSLT
Se muestra un ejemplo de cómo convertir XML a HTML usando XSLT.- Conversión de XML a HTML:
from lxml import etree xml_tree = etree.parse('data.xml') xsl_tree = etree.parse('style.xsl') transform = etree.XSLT(xsl_tree) result_tree = transform(xml_tree) result_tree.write('output.html', pretty_print=True)
6. Práctica: código de ejemplo y explicación
6.1 Ejemplo para extraer datos de XML
Este es un código de ejemplo que extrae datos de un archivo XML y muestra información específica。- Código de ejemplo:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() for country in root.findall('country'): name = country.get('name') rank = country.find('rank').text print(f"Country: {name}, Rank: {rank}")
6.2 Ejemplo para editar y guardar XML
Este es un código de ejemplo que edita el valor de un elemento XML y guarda los cambios。- Código de ejemplo:
import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() rank = root.find('.//rank') rank.text = '2' tree.write('updated_data.xml')
7. Conclusión
Al trabajar con XML en Python, puedes realizar fácilmente operaciones básicas de XML utilizando la biblioteca estándarxml.etree.ElementTree
. Además, el uso de lxml
permite operaciones avanzadas como XPath y XSLT. Toma como referencia el código presentado en el artículo y prueba a manipular XML en la práctica.