Saltar al contenido

Leer un archivo xml de ejemplo (Minidom, ElementTree)

¿Qué es XML?

XML son las siglas de eXtensible Markup Language. Está diseñado para almacenar y transportar pequeñas y medianas cantidades de datos y se usa ampliamente para compartir información estructurada.

Python le permite analizar y modificar un documento XML. Para analizar un documento XML, debe recordar todo el documento XML. En este tutorial, veremos cómo podemos usar una clase minidom XML en Python para cargar y analizar un archivo XML.

En este tutorial, aprenderemos:

Cómo analizar XML usando minidom

Hemos creado un archivo XML de muestra que estamos a punto de analizar.

Paso 1) Dentro del archivo, podemos ver el nombre, apellido, casa y área de especialización (SQL, Python, Test y Business)

Paso 2) Una vez que tengamos el documento analizado, haremos el «nombre del nodo» de la raíz del documento y el «etiquetar firstchild ». Las propiedades estándar del archivo XML son nombre de etiqueta y nombre de nodo.

Nota:

Nodename y child tag son propiedades o nombres XML estándar para mí. En caso de que no esté familiarizado con estas convenciones de nomenclatura.

Paso 3) Podemos llamar e imprimir la lista de etiquetas XML del documento XML. Aquí imprimimos el conjunto de habilidades como SQL, Python. Prueba y negocios.

  • Confirmar la experiencia variable, de la que derivamos el nombre de la experiencia de todos los empleados.
  • Use la función estándar para mí llamada «getElementsByTagName»
  • Esto adquirirá la habilidad de nombrar todos los elementos.
  • Confirmar un bucle sobre cada una de las etiquetas de habilidad
  • Ejecute el código: le dará una lista de cuatro habilidades

Cómo crear un nodo XML

Podemos crear un nuevo atributo usando la función «createElement» y agregando este nuevo atributo o etiqueta a las etiquetas XML existentes. Agregamos una nueva etiqueta «BigData» en nuestro archivo XML.

  1. Necesita codificar para agregar el nuevo atributo (BigData) a la etiqueta XML existente
  2. Luego, debe imprimir la etiqueta XML con los nuevos atributos adjuntos a la etiqueta XML existente.

Ejemplo de analizador XML

Ejemplo de Python 2


import xml.dom.minidom

def main():
# use the parse() function to load and parse an XML file
   doc = xml.dom.minidom.parse("Myxml.xml");
  
# print out the document node and the name of the first child tag
   print doc.nodeName
   print doc.firstChild.tagName
  
# get a list of XML tags from the document and print each one
   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
# create a new XML tag and add it into the document
   newexpertise = doc.createElement("expertise")
   newexpertise.setAttribute("name", "BigData")
   doc.firstChild.appendChild(newexpertise)
   print " "

   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
if name == "__main__":
  main();

Ejemplo de Python 3


import xml.dom.minidom

def main():
    # use the parse() function to load and parse an XML file
    doc = xml.dom.minidom.parse("Myxml.xml");

    # print out the document node and the name of the first child tag
    print (doc.nodeName)
    print (doc.firstChild.tagName)
    # get a list of XML tags from the document and print each one
    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

    # create a new XML tag and add it into the document
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print (" ")

    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

if __name__ == "__main__":
    main();

Cómo analizar XML usando ElementTree

ElementTree es una API para manipular XML. ElementTree es la forma fácil de procesar archivos XML.

Estamos utilizando el siguiente documento XML como datos de muestra:

<data>
   <items>
      <item name="expertise1">SQL</item>
      <item name="expertise2">Python</item>
   </items>
</data>

Leer XML usando ElementTree:

primero necesitamos importar el módulo xml.etree.ElementTree.


import xml.etree.ElementTree as ET

Ahora vayamos a lo básico:


root = tree.getroot()

El siguiente es el código completo para leer datos por encima de xml


import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()

# all items data
print('Expertise Data:')

for elem in root:
   for subelem in elem:
      print(subelem.text)

producción:


Expertise Data:
SQL
Python

Resumen:

Python le permite analizar todo el documento XML a la vez y no una línea a la vez. Para analizar un documento XML, debe recordar todo el documento.