Python Glossary English

все Python 3xml.etree.ElementTreeфункция

xml.etree.ElementTree.SubElement()

дерево и элементы

Создаёт элемент и сразу добавляет его последним ребёнком родителя. Главный способ строить XML-дерево с нуля.

Синтаксис

child = ET.SubElement(parent, tag, attrib={}, **extra)

В отличие от Element(), SubElement() не нужен отдельный append(). Атрибуты принимают только строки: число в attrib сериализация отвергнет TypeError'ом, поэтому пишите str(n). Атрибут с именем-ключевым словом (class) передают словарём attrib, а не class_=. Текст задают присваиванием .text после создания — параметра text нет. С 3.8 атрибуты выводятся в порядке добавления, а не по алфавиту.

Примеры

import xml.etree.ElementTree as ET
root = ET.Element('menu')
item = ET.SubElement(root, 'item', {'class': 'hot'}, price='5')
item.text = 'Чай'
print(ET.tostring(root, encoding='unicode'))
# → <menu><item class="hot" price="5">Чай</item></menu>
import xml.etree.ElementTree as ET
root = ET.Element('a')
ET.SubElement(root, 'b', n=5)
try:
    ET.tostring(root)
except TypeError as e:
    print(type(e).__name__)  # → TypeError — нужно n='5'

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности