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列”。