美文网首页
【原创】Response XML DOCTYPE dtd解析报错

【原创】Response XML DOCTYPE dtd解析报错

作者: 技术100万 | 来源:发表于2018-12-18 22:42 被阅读0次

在请求别人提供的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); 

若要获得name节点的内容,可以通知方法:getSingleElement("//name")获得,“//”表示匹配到任意位置的指定节点

相关文章

网友评论

      本文标题:【原创】Response XML DOCTYPE dtd解析报错

      本文链接:https://www.haomeiwen.com/subject/jcbrkqtx.html