Dom4J --- 使用dom4j解析XML时候忽略DTD文件
2014-03-04 23:12
453 查看
原文:http://www.blogjava.net/rain1102/archive/2009/08/06/290063.html
要这么做是因为Server返回给我们的XML肯定是合法的,不需要验证。
而设置不需要验证,只需要设置DocumentBuilderFactory.setValidating(false)就可以达到效果了,但是解析器还是会读取DTD的,解决的方法是实现EntityResolver接口,具体代码如下:
package com.founder.demo;
import Java.io.ByteArrayInputStream;
import Java.io.IOException;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class IgnoreDTDEntityResolver implements EntityResolver {
@Override
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException {
return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
}
}
然后设置SAXReader 对象如下:
SAXReader reader = new SAXReader();
reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd
一切ok。
要这么做是因为Server返回给我们的XML肯定是合法的,不需要验证。
而设置不需要验证,只需要设置DocumentBuilderFactory.setValidating(false)就可以达到效果了,但是解析器还是会读取DTD的,解决的方法是实现EntityResolver接口,具体代码如下:
package com.founder.demo;
import Java.io.ByteArrayInputStream;
import Java.io.IOException;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class IgnoreDTDEntityResolver implements EntityResolver {
@Override
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException {
return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
}
}
然后设置SAXReader 对象如下:
SAXReader reader = new SAXReader();
reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd
一切ok。
相关文章推荐
- java解析xml文件读取本地dtd或者忽略dtd
- dom4j 解析元素无属性和有属性的xml文件,都使用反射进行注值
- 使用Dom4j解析XML文件
- java使用dom4j解析xml文件
- XML_DTD约束和XML_Schema约束以及使用dom4j解析
- 使用dom4j解析xml文件
- 使用Dom4j创建与解析XML文件
- 在Java中使用dom4j来解析及生成xml文件
- [置顶] 【XML】使用dom4j来解析XML文件数据
- JAVA代码-使用DOM4J解析复杂XML文件
- 使用dom4j来解析,生成xml文件
- jdom (dom4j)解析xml出错、校验dtd文件不生效
- 使用dom4j创建和解析xml文件
- java基础-使用dom4j解析XML文件
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- 使用Dom4j解析xml文件
- java中使用Dom4j的xPath解析xml文件
- Java进阶(二十七)使用Dom4j解析XML文件
- 使用dom4j解析xml文件
- 使用dom4j解析XML文件