5. Создание нового документа XML

Если вашей программе необходимо написать какой-то вывод в виде XML-документа, пакет lxml упрощает эту операцию.

  1. Сначала импортируйте пакет lxml. Вот один из способов:
from lxml import etree
  1. Создайте корневой элемент. Например, предположим, что вы создаете веб-страницу; корневым элементом является html. Используйте конструктор etree.Element () для создания этого элемента.
page = etree.Element('html')
  1. Затем используйте конструктор etree.ElementTree (), чтобы создать новое дерево документов, используя наш html-элемент в качестве его корня:
doc = etree.ElementTree(page)
  1. Конструктор etree.SubElement () идеально подходит для добавления новых дочерних элементов в наш документ. Вот код для добавления элемента head, а затем тело как элемент, как новые дети элемента html:
headElt = etree.SubElement(page, 'head')
bodyElt = etree.SubElement(page, 'body')
  1. На странице будет нужен элемент title ребенок элемента head. Добавьте текст в этот элемент, сохранив строку в свой .text атрибут:
title = etree.SubElement(headElt, 'title')
title.text = 'Your page title here'
  1. Чтобы указать значения атрибута, используйте аргументы ключевого слова для конструктора SubElement (). Например, предположим, что вам нужна ссылка на таблицу стилей внутри элемента head, которая выглядит так:
<link rel='stylesheet' href='mystyle.css' type='text/css'>

Этот код сделает это:

linkElt = etree.SubElement(headElt, 'link', rel='stylesheet',
href='mystyle.css', type='text/css')
  1. Продолжайте создавать новый документ, используя различные функции, описанные в разделе 7. Особенности модуля etree и раздел 9. Класс Element: один элемент дерева.
  1. Когда документ полностью построен, запишите его в файл с помощью метода .write () экземпляра ElementTree, который принимает файловую переменную.
outFile = open('homemade.xml', 'w')
doc.write(outFile)