0
点赞
收藏
分享

微信扫一扫

dom4j解析xml-取消doctype中DTD验证设置


[url]http://pengfeng.iteye.com/blog/819827[/url]
看到此问题相信很多朋友都知道是因为下载doctype中的dtd对xml进行验证时,网络不通所致,sqlmap中doctype定义如下:

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">



但实际情况是很多时候程序运行的环境网络不一定和互联网是通的,而且像这样每次联网去下载dtd也会对程序的效率产生影响.于是,出现两种解决办法:


1、去掉xml文件中的doctype或者将doctype中指定的互联网dtd文件改为引用本地dtd文件


2、对dom4j的SAXReader进行设置,不去下载外部dtd文件来对xml进行验证


相信大部分同仁都不大会同意第一种办法,呵呵,我也不太赞同。于是开始寻找第二种方案的解决办法:


reader.setValidation(false);  
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);



两行代码解决问题,关键是第二行


举报

相关推荐

0 条评论