目标:给定文件,确定它是否是给定类型(XML,JSON,属性等)
考虑XML的情况 - 在我们遇到这个问题之前,以下示例方法工作正常:
try {
saxReader.read(f);
} catch (DocumentException e) {
logger.warn(" - File is not XML: " + e.getMessage());
return false;
}
return true;
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,当XML格式正确时,测试将通过,方法将返回true.如果发生错误并且无法解析文件,则返回false.
但是,当我们处理格式错误的XML(仍然是XML)文件时,这会中断.
我宁愿不依赖.xml扩展(一直失败),<?xml version="1.0" encoding="UTF-8"?>在文件中寻找字符串等.
还有另一种方法可以处理吗?
有什么办法看到里面的文件,以"怀疑它可能会XML虽然DocumentException被抓了".这是解析目的所必需的.