Tutorial de analizador XML de Python:ejemplo de lectura de archivo xml (Minidom, ElementTree)
¿Qué es XML?
XML significa lenguaje de marcado extensible. Fue 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 documentos XML. Para analizar un documento XML, debe tener todo el documento XML en la memoria. En este tutorial, veremos cómo podemos usar la clase XML minidom en Python para cargar y analizar archivos XML.
En este tutorial, aprenderemos-
- Cómo analizar XML usando minidom
- Cómo crear un nodo XML
- Cómo analizar XML usando ElementTree
Cómo analizar XML usando minidom
Hemos creado un archivo XML de muestra que vamos a analizar.
Paso 1) Dentro del archivo, podemos ver el nombre, el apellido, la casa y el área de especialización (SQL, Python, Testing y Business)
Paso 2) Una vez que hayamos analizado el documento, imprimiremos el “nombre de nodo” de la raíz del documento y el “nombre de etiqueta del primer hijo” . Tagname y nodename son las propiedades estándar del archivo XML.
- Importe el módulo xml.dom.minidom y declare el archivo que debe analizarse (myxml.xml)
- Este archivo contiene información básica sobre el empleado, como nombre, apellido, domicilio, experiencia, etc.
- Usamos la función de análisis en el minidominio XML para cargar y analizar el archivo XML
- Tenemos la 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, por lo que lo declaramos en la función de impresión
- Ejecute el código:imprime el nombre de nodo (#documento) del archivo XML y el primer nombre de etiqueta secundario (empleado) del archivo XML
Nota :
Nodename y child tagname son los nombres o propiedades estándar de un dom XML. En caso de que no esté familiarizado con este tipo de convenciones de nomenclatura.
Paso 3) También podemos llamar a la lista de etiquetas XML del documento XML e imprimirla. Aquí imprimimos el conjunto de habilidades como SQL, Python, Testing y Business.
- Declare la experiencia variable, de la cual vamos a extraer toda la experiencia que tiene el empleado
- Utilice la función estándar de dom llamada "getElementsByTagName"
- Esto obtendrá todos los elementos llamados habilidad
- Declarar 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 luego agregar este nuevo atributo o etiqueta a las etiquetas XML existentes. Agregamos una nueva etiqueta "BigData" en nuestro archivo XML.
- Tiene que 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 habilidad para nuestro nuevo atributo "Big-data"
- Agregue esta etiqueta de habilidad en el documento primer hijo (empleado)
- Ejecute el código:la nueva etiqueta "big data" aparecerá con la otra lista de experiencia
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 manera 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>
Lectura de XML usando ElementTree:
primero debemos importar el módulo xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Ahora busquemos el elemento raíz:
root = tree.getroot()
El siguiente es el código completo para leer los datos xml anteriores
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)
Expertise Data: SQL Python
Resumen:
Python le permite analizar todo el documento XML de una sola vez y no solo una línea a la vez. Para analizar un documento XML, debe tener el documento completo en la memoria.
- Para analizar un documento XML
- Importar xml.dom.minidom
- Utilice la función "analizar" para analizar el documento ( doc=xml.dom.minidom.parse (nombre de archivo);
- Acceda a la lista de etiquetas XML del documento XML mediante código (=doc.getElementsByTagName(“nombre de las etiquetas xml”)
- Para crear y agregar un nuevo atributo en un documento XML
- Usar la función “createElement”
python
- E/S de archivo de Python
- Java BufferedReader:cómo leer un archivo en Java con un ejemplo
- Python String strip() Función con EJEMPLO
- Longitud de cadena de Python | método len() Ejemplo
- Tutorial de Rendimiento en Python:Generador y Rendimiento vs Ejemplo de Retorno
- Contador de Python en colecciones con ejemplo
- Función Enumerate() en Python:Bucle, Tupla, Cadena (Ejemplo)
- Python comprueba si el archivo existe | Cómo comprobar si existe un directorio en Python
- Python JSON:codificar (volcados), decodificar (cargas) y leer archivos JSON
- Índice de lista de Python () con ejemplo
- Python - E/S de archivos