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