You are currently viewing Создавайте XML-документы с помощью Python

Создавайте XML-документы с помощью Python

Расширяемый язык разметки(XML) — это язык разметки, который вы можете использовать для создания собственных тегов. Он был создан Консорциумом Всемирной паутины (W3C) для преодоления ограничений HTML, который является основой для всех веб-страниц. XML основан на стандартном обобщенном языке разметки SGML. Он используется для хранения и транспортировки данных. XML не зависит от платформы и языка программирования. Вы можете написать программу на любом языке на любой платформе для отправки, получения или хранения данных с использованием XML. Он определяет набор правил для кодирования документов в формате, который является как удобочитаемым, так и машиночитаемым.

Данные хранятся в XML — документах. Документы XSL(расширяемый язык таблиц стилей) описывают, как изменять XML-документы в другие типы документов (например, HTML, TXT или даже XML). Процесс преобразования называется XSLT, или иногда XSL-преобразованиями.

Пример:

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

Примечание: Для получения дополнительной информации обратитесь к XML | Основы

Создание XML-документа с помощью Python

1) Создание XML-документа с помощью minidom
Сначала мы импортируем minidom для использования xml.dom. Затем мы создаем root элемент и добавляем его в XML. После этого создаем дочерний продукт родителя, а именно вундеркиндов для вундеркиндов. После создания дочернего продукта имя файла сохраняется как » любое имя в соответствии с вашим choice.xml’. Не забудьте добавить .xml в конце имени файла, которое вы указали файлу. Minidom-это минимальная реализация интерфейса объектной модели документа с API, аналогичным API на других языках. Он предназначен для того, чтобы быть проще, чем полный DOM, а также значительно меньше.

Пример:

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)

Выход:

2) Создание XML-документа с использованием ElementTree
Сначала мы должны импортировать 'xml.etree.ElementTree' для создания поддерева. После этого мы создаем корневой элемент, и этот корневой элемент должен находиться в предназначенном блоке, иначе возникнет ошибка. После создания корневого элемента мы можем легко создать древовидную структуру. Затем файл будет сохранен как » имя, которое вы хотите присвоить этому file.xml’. ElementTree-это важная библиотека Python, которая позволяет анализировать XML-документ и перемещаться по нему. Используя ElementTree, мы можем разбить документ на древовидную структуру, с которой легко работать.

Пример:

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")

Выход:

Существует три вспомогательные функции, которые полезны для создания иерархии узлов элементов. Element() функция создает стандартный узел, SubElement() функция присоединяет новый узел к родительскому узлу, а Comment() функция создает узел, который сериализуется с использованием синтаксиса комментариев XML.

Значения атрибутов можно настраивать по одному withset() (как для корневого узла) или все сразу, передавая словарь на фабрику узлов(как для каждой группы и узла подкаста).