Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中识别损坏的.xml_Python_Xml - Fatal编程技术网

在python中识别损坏的.xml

在python中识别损坏的.xml,python,xml,Python,Xml,我有一个小python脚本,它正在读取几个.XML文件。现在我必须声明,这些.XML文件没有以任何方式损坏。我怎么检查这个?我阅读它们的方法是: xml_tree = ET.parse(path) //path = path to .xml xml_file = xml_tree.getroot() ET.parse()如果XML文件损坏,则引发ParseError异常: >>> print open('test.xml').read() This is not an XML

我有一个小python脚本,它正在读取几个.XML文件。现在我必须声明,这些.XML文件没有以任何方式损坏。我怎么检查这个?我阅读它们的方法是:

xml_tree = ET.parse(path) //path = path to .xml
xml_file = xml_tree.getroot()
ET.parse()
如果XML文件损坏,则引发
ParseError
异常:

>>> print open('test.xml').read()
This is not an XML file

>>> from xml.etree import ElementTree as ET
>>> ET.parse('test.xml')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse
    tree.parse(source, parser)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse
    parser.feed(data)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/xml/etree/ElementTree.py", line 1642, in feed
    self._raiseerror(v)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
    raise err
xml.etree.ElementTree.ParseError: syntax error: line 1, column 0
如果XML已损坏,
ET.parse()
将引发异常。
try:
    ET.parse(path)
except ET.ParseError:
    print('{} is corrupt'.format(path))