5. Создание нового документа XML¶
Если вашей программе необходимо написать какой-то вывод в виде XML-документа, пакет lxml упрощает эту операцию.
- Сначала импортируйте пакет lxml. Вот один из способов:
from lxml import etree
- Создайте корневой элемент. Например, предположим, что вы создаете веб-страницу; корневым элементом является html. Используйте конструктор etree.Element () для создания этого элемента.
page = etree.Element('html')
- Затем используйте конструктор etree.ElementTree (), чтобы создать новое дерево документов, используя наш html-элемент в качестве его корня:
doc = etree.ElementTree(page)
- Конструктор etree.SubElement () идеально подходит для добавления новых дочерних элементов в наш документ. Вот код для добавления элемента head, а затем тело как элемент, как новые дети элемента html:
headElt = etree.SubElement(page, 'head')
bodyElt = etree.SubElement(page, 'body')
- На странице будет нужен элемент title ребенок элемента head. Добавьте текст в этот элемент, сохранив строку в свой .text атрибут:
title = etree.SubElement(headElt, 'title')
title.text = 'Your page title here'
- Чтобы указать значения атрибута, используйте аргументы ключевого слова для конструктора SubElement (). Например, предположим, что вам нужна ссылка на таблицу стилей внутри элемента head, которая выглядит так:
<link rel='stylesheet' href='mystyle.css' type='text/css'>
Этот код сделает это:
linkElt = etree.SubElement(headElt, 'link', rel='stylesheet',
href='mystyle.css', type='text/css')
- Продолжайте создавать новый документ, используя различные функции, описанные в разделе 7. Особенности модуля etree и раздел 9. Класс Element: один элемент дерева.
- Когда документ полностью построен, запишите его в файл с помощью метода .write () экземпляра ElementTree, который принимает файловую переменную.
outFile = open('homemade.xml', 'w')
doc.write(outFile)