首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

dom4j当地校验DTD

2012-06-28 
dom4j本地校验DTD如果XML中存在!DOCTYPE ejb-jar PUBLIC -//Sun Microsystems, Inc.//DTD Enterprise Ja

dom4j本地校验DTD
如果XML中存在

<!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));


这样就能实现本地校验了。

热点排行