【发布时间】:2012-06-08 17:08:37
【问题描述】:
我有以下 Java 方法:
private static Document documentFromFile(final File xmlFile)
{
Document document = null;
try
{
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory
.newDocumentBuilder();
document = docBuilder.parse(xmlFile);
document.getDocumentElement().normalize();
}
catch(Exception exc)
{
// Handle exception...
}
return document;
}
在我的测试方法中,如果我将此方法传递给格式错误的 XML 文件,我会在控制台上得到各种错误输出:
[致命错误] :1:1: prolog 中不允许内容。
[致命错误] :1:1: 文件过早结束。
我认为罪魁祸首是docBuilder.parse(xmlFile)。我希望能够禁用此默认输出并“静音”文档构建器,并且我看不到该对象上允许我执行此类操作的任何 setter 方法。我在这里有补救措施还是我被困住了?
【问题讨论】:
-
我们在谈论哪个implementation DOM 操作库?什么版本? DocumentBuilderFactory 有一个 setAttribute 方法,但是你必须知道要设置什么属性名。
-
我正在使用
javax.xml.parsers.*作为库并且正在使用 XSD 架构验证...