【发布时间】:2020-03-20 04:04:42
【问题描述】:
我的 python 代码需要一些帮助来处理 XML 文件。我想获取子标签并将它们存储在列表中并用它们做一些事情。直到现在我的代码还在工作,因为我认为 XML 结构对于我拥有的每个文件都是相同的。所以我使用 ElementTree 库进行解析等,然后使用 .findall(tagname) ,然后我对列表做了一些处理。但后来我意识到有些文件有更多的标签,因此我没有得到我需要的一切。为了给你一个想法,
<parent tag (same for every file)>
<tag1>
.....
</tag1>
<tag2>
.....
</tag2>
<tag3>
.....
</tag3>
<unknown tag1>
.....
</unknown tag1>
<unknown tag2>
.....
</unknown tag2>
<tag2>
.....
</tag2>
<tag2>
.....
</tag2>
<unknown tag1>
.....
</unknown tag1>
</parent tag>
所以我目前的代码是:
list1 = root.findall('tag1')
list2 = root.findall('tag2')
list3 = root.findall('tag3')
然后我为那些工作的标签中的内容做一些事情。我需要有关如何检测父标签下的每个标签的帮助,然后将它们存储在一个列表中,以便我可以为列表中的每个标签执行 findall() 函数。类似的东西
List_of_tags = [tag1, tag2, tag3, unknown tag1, etc]
for tag in list_of_tags:
....
提前谢谢你!
我实际上是这样用 ElemntTree 解析 xml 文件的:
try:
tree = ET.parse(filename)
except IOError as e:
print 'No such file or directory'
else:
root = tree.getroot()
【问题讨论】:
标签: python python-3.x xml xml-parsing