¿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.
- Importe el módulo xml.dom.minidom y confirme un archivo que debe analizarse (myxml.xml)
- Este archivo contiene información básica sobre un empleado como nombre, apellido, casa, experiencia, etc.
- Usamos la función de análisis en el minidom XML para cargar y analizar el archivo XML
- Tenemos una variable doc y doc obtiene el resultado de la función de análisis
- Queremos imprimir el nombre de nodo y la etiqueta secundaria del archivo, así que lo confirmamos en una aplicación de impresión.
- Ejecutar el código: imprime el nombre de nodo (#documento) del archivo XML y la primera etiqueta secundaria (empleado) del archivo XML
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.
- Necesita codificar para agregar el nuevo atributo (BigData) a la etiqueta XML existente
- Luego, debe imprimir la etiqueta XML con los nuevos atributos adjuntos a la etiqueta XML existente.
- Para agregar un nuevo XML y agregarlo al documento, usamos el código «doc.create elements»
- Este código creará una nueva etiqueta de habilidades para nuestro nuevo atributo «Big-data»
- Incluya esta etiqueta de habilidad en el primer documento secundario (empleado)
- Ejecute el código: la nueva etiqueta «Big Data» aparecerá con la siguiente lista de conocimientos
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.
Analizar un documento XML
- Importar xml.dom.minidom
- Utilice la función «parse» para analizar el documento (doc = xml.dom.minidom.parse (nombre de archivo);
- Llame a la lista de etiquetas XML del documento XML usando el código (= doc.getElementsByTagName («nombre de las etiquetas xml»)