目标:给定文件,确定文件是否为给定类型(XML,JSON,属性等)
考虑XML的情况-在遇到此问题之前,以下示例方法可以正常工作:
try { saxReader.read(f); } catch (DocumentException e) { logger.warn(" - File is not XML: " + e.getMessage()); return false; } return true;
不出所料,当XML格式正确时,测试将通过,方法将返回true。如果发生了某些错误而无法解析文件,则将返回false。
但是,当我们处理格式错误的XML(尽管仍为XML)文件时,这会中断。
我宁愿不依赖.xml扩展名(总是失败),<?xml version="1.0" encoding="UTF-8"?>在文件中查找字符串等。
.xml
<?xml version="1.0" encoding="UTF-8"?>
还有其他方法可以处理吗?
您必须在文件内部看到什么才能“怀疑XML虽然DocumentException被捕获了”。出于解析目的,这是必需的。
XML
DocumentException
文件类型检测工具: