Python XML解析使用循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python XML解析使用循环相关的知识,希望对你有一定的参考价值。
我有一个XML文件,如下所示:
<A><B><C>
<D>
.
.
.
</D>
<E>
.
.
.
.
.
</D>
<F>
<F1>
<F11>
.
.
.
.
.
</F11>
</F1>
<F1>
<F11>
.
.
.
.
.
.
.
</F11>
</F1>
</F>
我想解析名为F11的标签,它可以出现多次。这是F1的子标签,F1也可以存在n次。我一直在解析,但我可以找出F1
在xml文件中出现的次数。以下是代码:
from xml.dom.minidom import parseString
if __name__ == "__main__":
with open('final_resp.xml','r') as f:
doc = (f.read())
dom = parseString(doc)
f1_count = len(dom.getElementsByTagName('F1'))
for x in range(0,f1_count):
//parsing of each F1 tag
有人可以帮帮我吗?
答案
最后,我发现了有效的解决方案。使用xml.etree.ElementTree
,我们可以找到所需标记的出现并解析它。
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
root = tree.getroot()
for responses in root.findall('./B/C/F/F1'):
date = responses.find('./F11/DATE-REPORTED').text
print(a)
另一答案
首先,您需要有一个有效的XML文件,如:
data.hml:
<note>
<A>Tove</A>
<B>Jani</B>
<C>Reminder</C>
<D>Don't forget me this weekend!</D>
<E>SOme data</E>
<F>
<F1>
<F11>
Some F11 Datas
</F11>
</F1>
<F2>
<F12>
Some F12 data
</F12>
</F2>
</F>
</note>
您可以使用pythons内置的xml模块来获取数据:
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
root = tree.getroot()
for item in root[5]:
print(item[0].text)
XML是一种数据载体格式,您不能使用重复的标签
以上是关于Python XML解析使用循环的主要内容,如果未能解决你的问题,请参考以下文章
从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段