首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

指定dtd资料路径(XMLReader 中指定 xml对应的dtd路径)

2013-02-19 
指定dtd文件路径(XMLReader 中指定 xml对应的dtd路径)说明:!DOCTYPE xxx SYSTEM test.dtd解析xml是在

指定dtd文件路径(XMLReader 中指定 xml对应的dtd路径)
说明:<!DOCTYPE xxx SYSTEM "test.dtd">

解析xml是在同级目录下放置了test.dtd文件,可是还是不能找到这个dtd文件,于是就用了下面的方法:

=================================

XMLReader reader = XMLReaderFactory.createXMLReader();//reader.setErrorHandler(errorHandler);//reader.setContentHandler(contentHandler);reader.setEntityResolver(new EntityResolver() {    @Override    public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {      String dtdURL = “C:\\dtdlib\\test.dtd";//路径可以自己指定     // System.err.println("dtdURL:"+dtdURL);     return new InputSource(dtdURL);    }   });reader.parse(inputSource);
==================================

小插曲:其实如果xml中没有类似<!DOCTYPE xxx SYSTEM "xx.dtd">这样的声明,xml也同样能够正确解析,只需在XMLReader 的parse解析前对inputSource得到的字符串进行相关的处理即可,比如在字符串中加入这个声明。这样就可以不改变xml文档的情况下(有时项目中要求xml不可变),这时就可以动态的指定dtd了。

======

热点排行