使用lxml'在python中进行验证;有条件地对多个DTD进行iterparse

使用lxml'在python中进行验证;有条件地对多个DTD进行iterparse,python,lxml,dtd,iterparse,Python,Lxml,Dtd,Iterparse,我正在根据docinfo有条件地针对多个DTD解析和验证相当大的XML(>100MB): parser = etree.XMLParser(recover=True) xmlfile = etree.parse(file,parser) if "aaa.dtd" in xmlfile.docinfo.doctype.lower(): dtdfile= "dtds/aaa.dtd" elif "bbb.dtd" in xmlfile.docinfo.doctype.lower():

我正在根据docinfo有条件地针对多个DTD解析和验证相当大的XML(>100MB):

parser = etree.XMLParser(recover=True)
xmlfile = etree.parse(file,parser)
if "aaa.dtd" in xmlfile.docinfo.doctype.lower():
    dtdfile= "dtds/aaa.dtd"
elif "bbb.dtd" in xmlfile.docinfo.doctype.lower():
    dtdfile= "dtds/bbb.dtd"
elif "ccc.dtd" in xmlfile.docinfo.doctype.lower():
    dtdfile= "dtds/ccc.dtd"
dtd = etree.DTD(dtdfile)
if dtd.validate(xmlfile)==True:
    do sth
我的问题是内存消耗,所以我想我应该改用iterparse,但我找不到一种方法来做同样的验证

提前谢谢