我有一个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是一种数据载体格式,您不能使用重复的标签