Python XML ElementTree

Python XML ElementTree
Podemos generar, alterar y analizar documentos XML utilizando la útil biblioteca de Python ElementTree. Se cree que un árbol representa todo el documento. En este árbol, el elemento significa un solo nodo o rama. En XML, leer o escribir hacia o desde archivos se realiza principalmente en el nivel de elemento, mientras que interactuar con los elementos se basa en el nivel de elemento. El módulo Python ElementTree se usará para editar y agregar datos a los archivos XML a medida que aprendemos cómo analizar XML con Python en este tutorial. Estudiaremos expresiones XPath y árboles XML también para comprender los datos.

El marco XML lo utiliza para comprender los datos dinámicamente. Se preocupa en gran medida por la creación de páginas web con datos que siguen un formato predeterminado. XML, también denominado documento XML, se utiliza para generar una página. Una estructura jerárquica simple que se asemeja a un árbol se produce usando XML. El objetivo principal de esta publicación es mostrarle cómo leer y comprender archivos usando Python.

Los datos de muestra para esta parte se tomarán del siguiente documento XML:

Por lo que ha leído en el archivo XML, puede ver que el elemento raíz se llama "cliente" que contiene todos los demás elementos, como "clientes", que se consideran "elementos infantiles" o "subelementos."Cabe señalar que estos componentes infantiles tienen la capacidad de criar otros elementos infantiles, que se conocen como" elementos sub-child "y actúan como sus propios padres.

Observará, por ejemplo, que el elemento del cliente contiene algunos "atributos", como ID, nombres y facturas, que proporcionan aún más detalles. Ahora, vamos a leer esta información del archivo XML utilizando los diferentes códigos que se dan a continuación.

Ejemplo 1:
Podemos obtener el nombre de la etiqueta raíz del archivo XML especificado en Python utilizando la función GetRoot desde el módulo ElementTree.

Importar XML.etre.Elementtree como ET
file_root = ET.analizar ('Cliente.xml ').Getroot ()
file_tag = file_root.etiqueta
print (file_tag)

Hemos incluido el módulo elementTree al que se le asigna un alias como ET. Luego, declaramos un objeto como file_root. Dentro de ese objeto, tenemos una función de análisis que toma el nombre del archivo XML. Al mismo tiempo, hemos llamado al método GetRoot para obtener el nombre de la raíz. Hemos creado otro objeto como file_tag donde hemos llamado a la etiqueta con el objeto file_root. El resultado file_tag se imprimirá en la pantalla.

Puede ver que el nombre de la etiqueta raíz generada es los clientes como se da en el archivo XML.

Ejemplo 2:
También podemos obtener la raíz de los atributos que existían en el archivo XML. Con este ejemplo, podemos lograr la raíz del atributo.

Importar XML.etre.Elementtree como ET
f_root = ET.analizar ('Cliente.xml ').Getroot ()
f_attributes = f_root.atribuir
Imprimir (F_ATtributes)
día = f_attributes.Obtener ('día')
Imprimir ('Día:', día)

Como hemos insertado el módulo del módulo ElementTree, hemos creado un objeto como F_ROOT donde hemos definido el archivo XML dentro del método de Parse. También hemos definido el método GetRoot dentro de ese objeto para obtener el nombre raíz. Luego, creamos un objeto como f_attributes para la raíz del atributo e imprimimos su valor. Para obtener el atributo particular, hemos definido un objeto como un día y asignado el atributo al método Get dentro de él. El atributo específico será imprimido por la función de impresión.

Los resultados del código anterior son los siguientes:

Ejemplo 3:
Podemos acceder a los atributos de los nodos infantiles de la raíz implementando el siguiente código.

Importar XML.etre.Elementtree como ET
raíz = ET.analizar ('Cliente.xml ').Getroot ()
para el cliente en raíz.findall ('cliente'):
atributos = cliente.atribuir
Imprimir (atributos)
type = atributas.Get ('Tipo')

Los primeros dos pasos del código son los mismos que el código especificado anteriormente. Luego, tenemos un bucle for que recapitula sobre cada nodo infantil 'cliente'. Después de esa iteración, creamos un atributo variable que obtiene todos los nodos de los atributos. Hemos obtenido el tipo de atributos asignando 'tipo' dentro del método get.

Los tipos de los atributos en los nodos infantiles se muestran de la siguiente manera:

Ejemplo 4:
El ejemplo es acceder al nodo del elemento desde el archivo XML sin conocer el nombre de la etiqueta contra el elemento nodo correspondiente.

Importar XML.etre.Elementtree como ET
raíz = ET.analizar ('Cliente.xml ').Getroot ()
para el cliente en raíz.findall ('cliente'):
ID = Cliente.encontrar Identificación').texto
imprimir ('id:', id)
nombre = cliente.encontrar ('nombre').texto
Imprimir ('Nombre:', Nombre)
Bill = Cliente.encontrar ('bill').texto
Imprimir ('Bill:', Bill)

Comience con el bucle for, hemos iterado el bucle for sobre cada nodo en el archivo XML. Luego, obtenemos la identificación del elemento, el nombre y la factura al pasarlos al método de búsqueda e imprimir cada elemento con su valor.

Los nodos de elementos obtenidos del código anterior son los siguientes:

Ejemplo 5:
Veamos el último ejemplo en el que accedemos al nombre de la etiqueta raíz desde el archivo XML del cliente.

Importar XML.etre.Elementtree como ET
raíz = ET.analizar ('Cliente.xml ').Getroot ()
para el cliente en raíz.findall ('cliente'):
Para artículos en el cliente:
i_name = elementos.etiqueta
i_value = cliente.encontrar (elementos.etiqueta).texto
print (i_name, ':', i_value)

Desde el bucle for primero, iteramos sobre cada uno de los nodos. Luego, nuevamente usamos el bucle for para obtener todos los elementos del nodo del cliente. Se accede a los elementos llamando al objeto de etiqueta y pasándolo al método Buscar.

Toda la etiqueta del elemento de la etiqueta del cliente se muestra de la siguiente manera:

Conclusión

Un paquete de pitón esencial llamado ElementTree hace posible atravesar y leer documentos XML. El documento XML se divide en una estructura de árbol manejable usando Elementree. En caso de duda, imprímalo con la impresión de comando de impresión práctica (ET.toString (root, coding = "utf8").decode ('utf8')) para examinar todo el documento XML a la vez. Al modificar, agregar o eliminar de un XML, verificar es útil. El uso de elementtree y xmls tiene varias consideraciones importantes. Las etiquetas definen qué valores deben describirse en la estructura del árbol y ayudan a construirlo. La capacidad de leer y escribir en un XML puede facilitarse mediante una estructura inteligente. La relación padre-hijo siempre debe mostrarse en los soportes de apertura y cierre en las etiquetas. Al validar etiquetas o permitir designaciones booleanas, los atributos proporcionan más instrucciones.