首页 > 解决方案 > 如何将根XML的某些子项连续写入新文件,Python

问题描述

我从一个大的 XML 文件开始,并尝试创建一个只包含我想要的元素的新文件(一个包含某个序列号)。我几乎一切正常,唯一的问题是,当我将元素写入一个新文件时,它似乎一遍又一遍地重写自己,我最终只打印了文件中的最后一个元素。我怎样才能使下一个元素写入文件时它将在前一个元素之后开始?我正在考虑某种类型的行数并插入我只是不知道如何格式化它。

这是我的循环,它找到我想要的元素并将它们写入文件:

for child in root:
    for element in child:
        if element.tag == 'DeviceId':
            if element.text == 'NS-00-00000':
                f = open('new_3.log','w')
                p = (ET.tostringlist(child, encoding='unicode', pretty_print=True))
                print(p)
                f.write('\n'.join(p))
                f.close()

谢谢!

标签: pythonxmlelementtree

解决方案


推荐阅读