我正在尝试检查 xml 文件是否包含必要的 xml 声明(“标题”),假设:
<?xml version="1.0" encoding="UTF-8"?>
...rest of xml file...
我正在使用 xml ElementTree 从文件中读取和获取信息,但它似乎可以很好地加载文件,即使它没有标题。
到目前为止,我尝试的是:
import xml.etree.ElementTree as ET
tree = ET.parse(someXmlFile)
try:
xmlFile = ET.tostring(tree.getroot(), encoding='utf8').decode('utf8')
except:
sys.stderr.write("Wrong xml2 header\n")
exit(31)
if re.match(r"^\s*<\?xml version=\'1\.0\' encoding=\'utf8\'\?>\s+", xmlFile) is None:
sys.stderr.write("Wrong xml1 header\n")
exit(31)
但是如果文件中不存在 ET.tostring() 函数,它只会“组成”一个标题。
有没有办法用 ET 检查 xml 标头?或者在使用 ET.parse 加载文件时以某种方式抛出错误,如果文件不包含 xml 标头?