<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
这种语句,说明要进行校验。
如果校验则会连接网络,这样做会很慢的。我们可以设置成校验本地的DTD,那么就设置个解释器到SAXReader,代码如下所示:
EntityResolver resolver = new EntityResolver() { public InputSource resolveEntity(String publicId, String systemId) { if ( publicId.equals( "-//Acme//DTD Foo 1.2//EN" ) ) { InputStream in = getClass().getResourceAsStream( "/com/acme/foo.dtd" ); return new InputSource( in ); } return null; } }; SAXReader reader = new SAXReader(); reader.setEntityResolver( resolver ); Document document = reader.read(new File(fileName));
这样就能实现本地校验了。