我是Python的初学者。 我使用带有ElementTree的Python 2.7来解析XML文件。 我有一个大的XML文件(~700 MB),它包含多个根实例,例如:
<?xml version="1.0" ?> <foo> <bar> <sometag> Mehdi </sometag> <someothertag> blahblahblah </someothertag> . . . </bar> </foo>
<?xml version="1.0" ?> <foo> <bar> <sometag> Hamidi </sometag> <someothertag> blahblahblah </someothertag> . . . </bar> </foo>
...
...
每个xml实例都放在一行中。 我需要在python中解析这样的文件。我用这种方式使用了ElementTree:
import xml.etree.ElementTree as ET
tree = ET.parse('filename.xml')
root = tree.getroot()
但它似乎只能访问第一个根XML实例行。 在这种类型的文件中解析所有XML实例的正确方法是什么?
答案 0 :(得分:0)
你可能想这样做:
from xml.etree import ElementTree as ET
root = ET.parse("file.xml").getroot()
getpid = root.iter("bar")
您也可以在线查看xml验证。 https://www.xmlvalidation.com/
答案 1 :(得分:0)
您也可以使用 lxml.etree.iterparse() 方法,它的运行速度非常快。 IBM 建议 - https://www.ibm.com/developerworks/xml/library/x-hiperfparse/
for _, elem in etree.iterparse("filename.xml"):
if elem.tag == 'bar':
print(elem.text)
elem.clear()