Python 从txt文件创建包含多个根元素的xml

Python 从txt文件创建包含多个根元素的xml,python,xml,Python,Xml,我对将内容从.xml转换为.txt感到困惑。我已经处理了从txt到xml的转换,但从xml到txt的问题似乎更难解决 应用程序应该从子元素中获取所有值,并将它们分配到列表中。问题是xml文件有多个根元素(知道这是无效格式)F.e:sample.xml如下所示: <row> <col>One</col> <col>Two</col> <col>Three</col> </row>

我对将内容从
.xml
转换为
.txt
感到困惑。我已经处理了从txt到xml的转换,但从xml到txt的问题似乎更难解决

应用程序应该从子元素中获取所有值,并将它们分配到列表中。问题是xml文件有多个根元素(知道这是无效格式)F.e:sample.xml如下所示:

<row>
    <col>One</col>
    <col>Two</col>
    <col>Three</col>
</row>
<row>
    <col>John</col>
    <col>Mark</col>
    <col>Elise</col>
</row>
One Two Three
John Mark Elise

在写这篇文章的过程中,我有了一个想法,但它看起来很难看(尤其是从行中删除col标记)。对于从子元素
| col |
获取值,您有什么更好的方法吗

我的代码:

def convert_xml_to_txt(self):
        words_list = []
        with open(self.filename) as fxml:
            while True:
                line = fxml.readline()
                if line:
                    if line.startswith('<row'):
                        pass
                    else:
                        words_list.append(line[5:-7].strip()) #delete tags <col> from line
                else:
                    self.generate_txt_file(words_list)
                    break
def将xml转换为txt(self):
单词列表=[]
打开(self.filename)作为fxml时:
尽管如此:
line=fxml.readline()
如果行:

如果line.startswith(“有几个库可以使用: 一个是
untangle
,可以通过
pip
pip安装untangle
那样安装:

import untangle
obj = untangle.parse('path/to/file.xml')
或者您可以使用
xmltodict
帮助库:

import xmltodict

with open('path/to/file.xml') as fd:
    doc = xmltodict.parse(fd.read())

请参阅链接。

您是否考虑过使用内置库?@肯达斯:为什么要考虑这个问题?它不能处理这样畸形的XML数据:“文档元素之后的垃圾:第7行,第0列”。