View difference between Paste ID: 18aaLQwu and 31j2R3gc
SHOW: | | - or go back to the newest paste.
1
# Используется либа lxml вместо стандартной питоновской
2-
from lxml.etree import ElementTree, SubElement, XMLParser
2+
from lxml import etree as et
3
4
# Парсим файлы
5-
parser = XMLParser(remove_blank_text=True)
5+
parser = et.XMLParser(remove_blank_text=True)
6-
file1 = ElementTree().parse('1.xml', parser)
6+
file1 = et.ElementTree().parse('1.xml', parser)
7-
file2 = ElementTree().parse('2.xml', parser)
7+
file2 = et.ElementTree().parse('2.xml', parser)
8
9
a_tag = file1.find('a') # Ищем тег 'a'
10
11
# Пихаем в file2 тег 'a' с теми же атрибутами, что и у 'a' из первого файла
12-
new_a = SubElement(file2, 'a', a_tag.attrib) 
12+
new_a = et.SubElement(file2, 'a', a_tag.attrib) 
13
14
b_tags = file2.findall('b') # 'Ищем теги b' из второго файла
15
16
# Добавляем теги 'b' в 'a' и удаляем их из корня
17
for b in b_tags:
18-
    SubElement(new_a, 'b', b.attrib).text = ''
18+
    et.SubElement(new_a, 'b', b.attrib).text = ''
19
    file2.remove(b)
20
21
# Пишем это всё в новый файл
22-
tree = ElementTree(file2)
22+
tree = et.ElementTree(file2)
23
tree.write('3.xml', encoding='UTF-8', pretty_print=True)