使用lxml插入一个解析后的xml文件作为后续输出的元素



我有一个应用程序,它使用lxml来创建一些xml,目前其中一个部分是另一个xml文件的嵌入式包含

问题是,当我保存文件时,我还需要将包含的xml保存在同一目录中。

我想要的是,当我创建元素树并到达当前设置为include的部分时,实际上我会解析include文件,使其成为元素树的一部分,并将成为输出的一部分。

我正在创建一个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)

当我输出文件时,要求要嵌入materials.xml的文件在同一目录中。

我想解析材料xml文件并添加到元素树
materials = ET.parse("./materials.xml")

如何将材料添加到gdml ET元素

您可以添加materials.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)

最新更新