在请求别人提供的restful接口,返回值为xml时,经常碰到以下两个问题:
第一、<!DOCTYPE "\home\a.dtd">因为有DOCTYPE会因为dtd文件找不到而报错。
第二、获得xml中指定节点写法应该用"//name"形式来匹配,代码会优雅很多。
例如:<?xml><!DOCTYPE "home\a.dtd"><Emp><name>aa<name><Emp>
利用dom4j或sax解析xml时,会报home\a.dtd FileNotFoundException,是因为.dtd是检查xml定义的标准,但是这个地址将连接不到,所以报错。
一般采用的方法是:
SAXReader reader = new SAXReader();
/* 在读取文件时,去掉dtd的验证,可以缩短运行时间 */
reader.setValidation(false);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
网友评论