Python – Leer archivo XML

El archivo que usaremos para lectura en este ejemplo es el siguiente:

datos.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0"?>
<empresa>
 <empleado id="1">
 <nombre>José Ernesto</nombre>
 <username>jose</username>
 <password>321423</password>
 </empleado>
 <empleado id="2">
 <nombre>Daniel Pérez</nombre>
 <username>dperez</username>
 <password>433543</password>
 </empleado>
</empresa>

Importamos minidom.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from xml.dom import minidom
 
doc = minidom.parse("/home/decodigo/Documentos/java/datos.xml")
 
nombre = doc.getElementsByTagName("nombre")[0]
print(nombre.firstChild.data)
 
empleados = doc.getElementsByTagName("empleado")
for empleado in empleados:
    sid = empleado.getAttribute("id")
    username = empleado.getElementsByTagName("username")[0]
    password = empleado.getElementsByTagName("password")[0]
    print("id:%s " % sid)
    print("username:%s" % username.firstChild.data)
    print("password:%s" % password.firstChild.data)

Para comenzar el parseo usamos: doc = minidom.parse(“/home/decodigo/Documentos/java/datos.xml”).

Es posible encontrar cualquier nodo del documento como lo hacemos en la línea con la función nombre = doc.getElementsByTagName(“nombre”)[0].

Obtener una lista de nodos y sus atributos:  sid = empleado.getAttribute(“id”).

O  bien obtener otros nodos y su respectivo contenido de texto: username = empleado.getElementsByTagName(“username”)[0].

Con Python es bastante sencillo leer archivos de XML.