`

dom4j解析xml-取消doctype中DTD验证设置

 
阅读更多
http://pengfeng.iteye.com/blog/819827
看到此问题相信很多朋友都知道是因为下载doctype中的dtd对xml进行验证时,网络不通所致,sqlmap中doctype定义如下:
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">  


但实际情况是很多时候程序运行的环境网络不一定和互联网是通的,而且像这样每次联网去下载dtd也会对程序的效率产生影响.于是,出现两种解决办法:
1、去掉xml文件中的doctype或者将doctype中指定的互联网dtd文件改为引用本地dtd文件
2、对dom4j的SAXReader进行设置,不去下载外部dtd文件来对xml进行验证
相信大部分同仁都不大会同意第一种办法,呵呵,我也不太赞同。于是开始寻找第二种方案的解决办法:
reader.setValidation(false);  
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);  


两行代码解决问题,关键是第二行
分享到:
评论

相关推荐

    dom4j解析xml详解

    12. **Node**: 为DOM4J中的所有XML节点提供一个多态接口,包括`Element`、`Attribute`、`Comment`等,简化了节点类型的处理。 13. **NodeFilter**: 定义了节点过滤器的行为,可以在遍历节点时应用条件筛选。 14. **...

    DOM4J解析XML时DTD路径问题

    ### DOM4J解析XML时DTD路径问题 在处理XML文件时,经常需要用到DOM4J这样的库来进行解析。当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了...

    dtd定义xml dom4j解析xml小类

    DTD 定义 XML DOM4J 解析 XML 小类 XML 文档类型定义(DTD)是用来定义一段合法的 XML 文档块的。它用来验证你的 XML 文档是以一系列合法的元素构成的。DTD 可以在 XML 文档内部定义,也可以通过外部文件的方式引入...

    使用DOM4J验证DTD最简单的方法

    在本文中,我们将深入探讨如何使用DOM4J来验证XML文档对DTD(Document Type Definition)的符合性,这是一个确保XML文档结构正确的重要步骤。 首先,我们需要理解DTD的作用。DTD是XML文档类型定义,它定义了XML文档...

    dom4j 源码

    - **ContentHandler**: 这是 dom4j 中处理 XML 事件的接口,类似于 SAX 解析中的 ContentHandler,可以监听 XML 解析过程中的各种事件。 - **EntityResolver**: 解析外部实体,允许自定义 DTD 或实体的解析逻辑。 ...

    DOM4j教程 例子

    - **Node**:为所有的DOM4j XML节点定义了一种多态行为,是DOM4j中最基本的接口。 - **NodeFilter**:定义了在DOM4j节点中产生的一个过滤器的行为。 - **ProcessingInstruction**:表示XML文档中的处理指令。 - **...

    dom4j教程.pdf

    - **定义**:`Node`接口为所有DOM4J中的XML节点定义了多态行为。 - **使用场景**:处理XML文档时,`Node`是所有节点的基类。 ##### 13. `NodeFilter` - **定义**:`NodeFilter`定义了在DOM4J节点中产生的一个过滤...

    xml-DOM教学PPT

    在解析XML文档时,DOM一次性加载整个文档到内存中,构建出一个树形结构,方便开发者通过API直接查找、添加、删除和修改节点。相比于SAX解析器,DOM在解析时消耗更多资源,但提供了更直观和方便的编程模型。 DOM的...

    DOM4J 使用简介.pdf

    - 为所有的DOM4J中的XML节点定义了多态行为。这是DOM4J中所有节点类型的父接口。 13. **`NodeFilter`** - 定义了在DOM4J节点中产生的一个滤镜或谓词的行为。这个接口用于过滤或选择特定的节点。 14. **`...

    dom4j参考资料

    - **Node**:为所有DOM4j中的XML节点定义了多态行为。 - **NodeFilter**:定义了在DOM4j节点中过滤器的行为。 - **ProcessingInstruction**:定义XML处理指令。 - **Text**:定义XML文本节点。 - **Visitor**:用于...

    Dom4j 使用简介

    - **高性能**:在多个基准测试中,Dom4j 表现出了卓越的性能,尤其是在大型 XML 文件的解析方面。 - **灵活性**:通过丰富的接口设计,Dom4j 支持多种 XML 处理方式,例如 XPath 查询、XSLT 转换等。 - **全面支持**...

    xml语法检验DTD文件

    为了检查XML文档是否符合DTD,可以使用XML解析器如XML Spy或编写基于DOM(Document Object Model)的验证程序。例如,`Validator.html`就是一个简单的HTML页面,使用JavaScript进行XML和DTD的验证。 总结来说,DTD...

    Dom4j 简明教程

    - `Node`接口为所有DOM4J中的XML节点定义了多态行为,是DOM4J节点体系的基础接口。 ##### 13. **NodeFilter(节点过滤器)** - `NodeFilter`接口定义了在DOM4J节点中筛选节点的规则或谓词,用于实现复杂的节点...

    DTD(文档类型定义)

    在编程和工具应用中,处理DTD的方式多种多样,包括使用XML解析器(如Java的DOM、SAX或StAX解析器)来验证XML文档,或者利用XML编辑器(如Notepad++或XML Spy)直接编辑和检查DTD。同时,开发过程中,了解和使用DTD有...

    优秀xml课程设计 完整代码 加完整dtd

    学习这部分内容,你将能掌握如何使用Java进行XML文件的读写,如何定义和验证XML文档结构,以及如何在实际项目中利用XML进行数据交换和存储。这不仅对理解XML的基本概念至关重要,也有助于提升你的Java开发能力,特别...

    Xml解析.docx

    此外,DOM解析器支持DTD(Document Type Definition)和XML Schema进行验证,可以通过调用`setValidating()`和`setIgnoringElementContentWhitespace()`方法来开启或关闭验证和忽略元素内容中的空白。 2. SAX解析:...

    张龙 Schema DOM笔记

    通过以上总结,我们了解到Schema和DOM在XML文档验证和处理中的重要作用。Schema不仅提供了强大的数据类型验证功能,还支持自定义数据类型,使得XML文档的定义更加灵活多样。而DOM则为开发者提供了一种便捷的方式去...

    05+第3章XML简介--JS操作DOM.rar

    2. 解析XML:使用DOMParser对象解析XML字符串为DOM对象,如 `var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlStr, "text/xml");` 3. 遍历XML:通过getElementsByTagName、getElementById等...

    XML指南--XML指南.rar

    - 解析器:读取XML文档并验证其语法正确性的工具,分为DOM(Document Object Model)和SAX(Simple API for XML)两种方式。 - DTD和XSD:用于定义XML文档结构和约束,确保数据的准确性。 五、XML在IT行业中的应用 ...

Global site tag (gtag.js) - Google Analytics