0 0

xml解析忽略dtd文件3

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 reader = new SAXReader();
reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd

问题补充:就是要达到这个效果。不读dtd文件

问题补充:用sax,dom4j当解析xml文件时,如果xml文件中引用了dtd文件,解析的时候读不到这个dtd文件,无论解析是否设置验证,都会抛异常。
2010年5月12日 21:52

3个答案 按时间排序 按投票排序

0 0

什么异常,贴出来看看。

2010年5月18日 01:37
0 0

@Override
public InputSource resolveEntity(String publicId, String systemId)
   throws SAXException, IOException {
        return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
}

} 

这个重写的方法没有读dtd文件。

2010年5月17日 09:49
0 0

resolveEntity

重写这个方法,没有做任何的DTD校正,更没有读取DTD文件,而是直接返回xml文件的byte字节。
引用
reader.setEntityResolver(new IgnoreDTDEntityResolver()); // ignore dtd

设置读xml文件时的用来DTD验证的对象。

2010年5月13日 01:38

相关推荐

    使用XmlDocumentXmlDataDocument类加载XML文件时如何忽略DTD验证

    在XML文件含有外部DTD验证的时候,使用XmlDocument/XmlDataDocument类的Load方法会抛出如下的例外: System.Xml.XmlException: 未找到所需的 DTD 标记。 行 m,位置 n。 我们可以采用下面的方法不去加载外部资源: ...

    解析XML文件(字符串)的两种方法

    解析XML文件(字符串)的两种方法,dom4j解析XML时候忽略DTD文件验证

    expat-win32bin-2.0.1

    expat是一个由C语言编写的XML解析库。expat是一个基于SAX模型的、非验证(默认,v1.2开始提供验证接口,需要用户手动处理)的轻量级XML解释器。...非验证性的则忽略DTD文件,只要基本格式正确,就可以进行解析

    tinyxml+tinyxpath组合编程套件,很好的编程工具,都是源码

    另一种是忽略DTD文件,只要基本格式正确,就可以进行解析。 就我所知,验证的解析器通常都是比较重量级的。TinyXml不支持验证,但是体积很小,用在解析格式较为简单的XML文件,比如配置文件时,特别的合适。

    php解析xml 的四种简单方法(附实例)

    XML Parser使用Expat XML解析器。Expat是一种基于事件的解析器,它把XML文档视为一系列事件。当某个事件发生时,它调用一个指定的函数处理它。Expat是无验证的解析器,忽略任何链接到文档的DTD。但是,如果文档的...

    php 解析xml 的四种方法详细介绍

    XML Parser使用Expat XML解析器。Expat是一种基于事件的解析器,它把XML文档视为一系列事件。当某个事件发生时,它调用一个指定的函数处理它。Expat是无验证的解析器,忽略任何链接到文档的DTD。但是,如果文档的...

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    java 面试题 总结

    抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。...

    超级有影响力霸气的Java面试题大全文档

    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是...

Global site tag (gtag.js) - Google Analytics