python读取xml文件报错xml.parsers.expat.ExpatError: XML or text declaration not at start of entity

先说明一下我之前对python的xml.dom.minidom模块不熟,遇到这个问题时先想到的是百度,结果转了一圈回来发现大家都写的是xml文件中的第一行,也就是


这个可能没有顶格写,有空格。可是我遇到的问题是,它确实是在第一行第一列写的,然后,我就反复去看xml文件,发现了文件中间还有一个标签,导致了报错。所以并不是我们写的代码有问题,只能说是代码写得不完善。

所以我的解决办法是直接在读取文件时写了一个异常处理,当发现错误格式的Xml文件时就记录这个文件,并跳过它,执行下一个xml文件。

#打开xml文档,并返回dom对象
def read_init(path):
    dom = xml.dom.minidom.parse(path)
    return dom

#打开xml文档,并返回根节点
def root_back(dom):
    root = dom.documentElement
    return root

for ele in file_list:
    try:
        root =  root_back(read_init(path+"/"+ele.name))
    except xml.parsers.expat.ExpatError:
        unread_file.append(ele)
        continue

你可能感兴趣的:(python)