Crear documentos XML usando Python

El lenguaje de marcado extensible (XML) es un lenguaje de marcado que puede utilizar para crear sus propias etiquetas. Fue creado por el World Wide Web Consortium (W3C) para superar las limitaciones de HTML, que es la base de todas las páginas web. XML se basa en SGML – Lenguaje de marcado generalizado estándar. Se utiliza para almacenar y transportar datos. XML no depende de la plataforma y el lenguaje de programación. Puede escribir un programa en cualquier idioma en cualquier plataforma para enviar, recibir o almacenar datos mediante XML. Define un conjunto de reglas para codificar documentos en un formato que sea tanto legible por humanos como por máquinas.

Los datos se almacenan en documentos XML. Los documentos XSL (lenguaje extensible de hojas de estilo) describen cómo convertir documentos XML en otros tipos de documentos (como HTML, TXT o incluso XML). El proceso de transformación se denomina XSLT o, a veces, transformaciones XSL.

Ejemplo:

<?xml version=“1.0” standalone=“yes” ?>
<message>    
<from> Robert </from>   
<to> Mario </to>
</message>

Nota: Para obtener más información, consulte XML | Lo esencial

Crear documento XML usando Python

1) Crear un documento XML usando minidom
Primero, importamos minidompara usar xml.dom. Luego creamos el rootelemento y lo agregamos al XML. Después de eso, crear un producto secundario de los padres, a saber, Geeks for Geeks. Después de crear un producto secundario, el nombre del archivo se guarda como ‘cualquier nombre según su elección.xml’. No olvide agregar .xml al final del nombre de archivo que le ha dado al archivo. Minidom es una implementación mínima de la interfaz Document Object Model, con una API similar a la de otros lenguajes. Está destinado a ser más simple que el DOM completo y también significativamente más pequeño.

Ejemplo:

from xml.dom import minidom
import os 
  
  
root = minidom.Document()
  
xml = root.createElement('root') 
root.appendChild(xml)
  
productChild = root.createElement('product')
productChild.setAttribute('name', 'Geeks for Geeks')
  
xml.appendChild(productChild)
  
xml_str = root.toprettyxml(indent ="\t") 
  
save_path_file = "gfg.xml"
  
with open(save_path_file, "w") as f:
    f.write(xml_str) 

Producción:

create-xml-python-1

2) Crear un documento XML usando ElementTree
Primero tenemos que importar 'xml.etree.ElementTree'para crear un subárbol. Después de eso, creamos el elemento raíz, y ese elemento raíz debe estar en un bloque previsto, de lo contrario, surgirá el error. Después de crear el elemento raíz, podemos crear fácilmente una estructura de árbol. Luego, el archivo se almacenará como ‘nombre que desea darle a ese archivo.xml’. ElementTree es una importante biblioteca de Python que le permite analizar y navegar por un documento XML. Usando ElementTree, podemos dividir un documento en una estructura de árbol con la que es fácil trabajar.

Ejemplo:

import xml.etree.ElementTree as gfg 
  
  
def GenerateXML(fileName) :
      
    root = gfg.Element("Catalog")
      
    m1 = gfg.Element("mobile")
    root.append (m1)
      
    b1 = gfg.SubElement(m1, "brand")
    b1.text = "Redmi"
    b2 = gfg.SubElement(m1, "price")
    b2.text = "6999"
      
    m2 = gfg.Element("mobile")
    root.append (m2)
      
    c1 = gfg.SubElement(m2, "brand")
    c1.text = "Samsung"
    c2 = gfg.SubElement(m2, "price")
    c2.text = "9999"
      
    m3 = gfg.Element("mobile")
    root.append (m3)
      
    d1 = gfg.SubElement(m3, "brand")
    d1.text = "RealMe"
    d2 = gfg.SubElement(m3, "price")
    d2.text = "11999"
      
    tree = gfg.ElementTree(root)
      
    with open (fileName, "wb") as files :
        tree.write(files)
  
# Driver Code
if __name__ == "__main__": 
    GenerateXML("Catalog.xml")

Producción:

create-xml-python-2

Hay tres funciones auxiliares que son útiles para crear una jerarquía de Elementnodes. Element()la función crea un Node estándar, la SubElement()función adjunta un nuevo Node a un Node principal y Comment()la función crea un Node que serializa utilizando la sintaxis de comentarios de XML.

Los valores de los atributos se pueden configurar de uno en uno withset()(como con el Node raíz) o todos a la vez pasando un diccionario a la fábrica de Nodes (como con cada grupo y Node de podcast).

Publicación traducida automáticamente

Artículo escrito por snigdha_yambadwar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *