在python中通过迭代列表创建XML文件

在python中通过迭代列表创建XML文件,python,xml-parsing,elementtree,Python,Xml Parsing,Elementtree,我已经检查过了,但没有解决我的问题 我有两份清单: a = [['txt','stxt','pi','min','max'],['txt1','stxt1','pi1','min1','max1']] b = [[0.45,1.23],[[0.75,1.53]] for l1 in a: for l2 in b: root = ET.Element("Class ",name = l1[0]) doc = ET.SubElement(root,

我已经检查过了,但没有解决我的问题

我有两份清单:

a = [['txt','stxt','pi','min','max'],['txt1','stxt1','pi1','min1','max1']]
b = [[0.45,1.23],[[0.75,1.53]]

 for l1 in a:
     for l2 in b:
         root = ET.Element("Class ",name = l1[0])
         doc = ET.SubElement(root, "subclass" , name = l1[1])
         ET.SubElement(doc, l1[4], min = str(l2 [0]),max = str(l2 [1]))
         tree = ET.ElementTree(root)
         tree.write(FilePath)
最后一条记录将覆盖以前的所有记录。那么,如果我想将所有记录写入xml文件?如何使用python编程实现这一点。我还希望将每条记录以新行保存到xml文件中,但不要打印得太漂亮

需要将输出添加到xml中:

<Class  name="txt"><subclass name="stxt"><pi max="1.23" min="0.45" /></subclass></Class >
<Class  name="txt1"><subclass name="stxt1"><pi1 max1="1.53" min1="0.75" /></subclass></Class >

但我得到的只有一条xml记录:

<Class  name="txt1"><subclass name="stxt1"><pi1 max1="0.1077" min1="-0.0785" /></subclass></Class >

您每次都在写入同一个文件。您需要为每个输入创建新文件,两个for循环将生成4个具有不希望的组合的文件。相反,拉链是你需要的

a = [['txt','stxt','pi','min','max'],['txt1','stxt1','pi1','min1','max1']]
b = [[0.45,1.23],[0.75,1.53]]
from xml.etree import ElementTree as ET
root =  ET.Element("xml")
for l1 in zip(a,b):
        sroot_root = ET.Element("Class ",name = l1[0][0])
        doc = ET.SubElement(sroot_root, "subclass" , name = l1[0][1])
        ET.SubElement(doc, l1[0][4], min = str(l1[1][0]),max = str(l1[1][1]))
        root.append(sroot_root)


tree = ET.ElementTree(root)
tree.write("test.xml")
输出:

文件名:test.xml

<xml><Class  name="txt"><subclass name="stxt"><max max="1.23" min="0.45" /></subclass></Class ><Class  name="txt1"><subclass name="stxt1"><max1 max="1.53" min="0.75" /></subclass></Class ></xml>


您能否通过一个示例指定作为输出所需的具体内容?这里我在列表中有两条记录,但最后一条记录覆盖了以前添加的记录。所以我想把所有的2条记录都添加到xml文件中。现在还不清楚。编辑问题。添加两个内容:预期的XML和相对于给定列表的输出XML。预期的输出不是有效的XML。缺少根元素。我不想为每个记录创建一个xml文件,但我想将所有记录添加到同一个xml文件。如果两个列表中的第一个元素相同,我想将两个列表的子元素添加到同一个元素。如何使用python做到这一点?当我进行重复操作时,会将重复项添加到元素中。