с l xml Вставка проанализированного файла xml в качестве элемента для последующего вывода - PullRequest
0 голосов
/ 08 марта 2020

У меня есть приложение, которое использует l xml для создания некоторого xml, и в настоящее время один раздел является встроенным включением другого xml файла

Проблема заключается в том, что при сохранении файла мне нужно также сохраните включенный xml в том же каталоге.

Что я ищу, так это то, что когда я создаю дерево элементов и попадаю в раздел, для которого я сейчас настроил включение, на самом деле я анализирую включаемый файл, например что он становится частью дерева элементов и будет частью вывода.

Я создаю файл GDML, поэтому мое приложение имеет (очевидно, оно выводит более подробное дерево элементов)

gdml = ET.Element('gdml')
define = ET.SubElement(gdml, 'define')
structure = ET.SubElement(gdml, 'structure')
setup = ET.SubElement(gdml, 'setup', {'name': 'Default', 'version': '1.0'})
ET.SubElement(setup,'world', {'ref':self.Name})
solids = ET.SubElement(gdml, 'solids')

В настоящее время в разделе материалов есть

    ent  = ET.Entity("materials")
    materials = ET.SubElement(gdml, 'materials')
    materials.append(ent)

, который при выводе файла требует, чтобы файл был внедрен в материалы. xml находится в том же каталоге.

Я хотел бы проанализировать файл материалов xml и добавление в дерево элементов
materials = ET.parse("./materials.xml")

Как получить материалы, добавленные в gdml ET.Element

1 Ответ

1 голос
/ 08 марта 2020

Вы можете добавить все, что есть в материалах. xml вот так:

# Parse materials.xml and get the root element
materials = ET.parse("materials.xml").getroot()

# Append materials as a new child of the gdml root element
gdml.append(materials)
...