`

DOM4J解析忽略DTD

    博客分类:
  • JAVA
 
阅读更多
最近解析第三方的xml , 报错提示找不到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使用简介.pdf

    #### 四、Dom4j 的接口继承关系 为了更好地理解 Dom4j 的工作原理,我们需要了解它的接口继承关系。以下是部分关键接口的继承关系示意图: - `java.lang.Cloneable` → `org.dom4j.Node` - `org.dom4j.Attribute`...

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

    #### dom4j解析XML时忽略DTD文件验证 在使用`SAXReader`或`DocumentHelper`解析XML时,默认情况下会验证DTD(Document Type Definition),这可能会导致解析速度变慢或者因为DTD文件不存在而抛出异常。为了提高效率...

    使用Java解析XML

    Java提供了多种方式来解析XML文档,包括DOM解析和SAX解析,这两种方式各有优缺点,适用于不同的场景。本章将详细介绍这两种解析方法,并通过实例讲解如何使用Java来获取XML文档中的标签内容和属性。 1. **解析器的...

    Xml解析.docx

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

    Xerces-J-tools.1.2.1.zip

    此外,Xerces-J还提供了其他功能,例如DOM解析器,适用于需要在内存中构建整个XML文档结构的情况;JAXP接口则允许灵活地选择解析器实现,无论是DOM、SAX还是XPath。 "hibernate"标签可能意味着Xerces与Hibernate...

    xml解析Demo以及相关jar包

    - **DOM解析**:Document Object Model,它将整个XML文档加载到内存中,形成一个树形结构,方便遍历和操作。优点是操作灵活,缺点是占用内存大,不适合大型文档。 - **SAX解析**:Simple API for XML,采用事件...

    Sax解析xml_动力节点Java学院整理

    SAX,全称为Simple API for XML,是一种基于事件驱动的XML解析器,相较于DOM解析,它具有更快的速度和更低的内存占用。DOM解析会将整个XML文档加载到内存中形成一个节点树,适合处理小规模或内存有限的情况。而SAX则...

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

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

    XML基础及DOM 文档对象模式和SAX 基于事件处理模式 学习笔记

    - **CDATA**:用于指定应被解析器忽略的文本区域,避免解析其中的特殊字符。 #### DOM 文档对象模型 DOM是一种用于表示和操作文档的标准接口。它提供了对文档中元素和属性的访问方法。DOM模型将XML文档视为一个...

    sax解析xml文件

    SAX(Simple API for XML)是XML解析的一种方式,它以事件驱动的方式处理XML文档,相较于DOM(Document Object Model)解析器,SAX具有内存占用低、速度快的优点,特别适合处理大型XML文件。 SAX解析XML文件的核心...

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

    例如,它是一个无验证的解析器,忽略与文档相关联的DTD(文档类型定义)。如果XML文档格式不正确,解析过程可能以错误消息终止。此外,Expat解析器只支持US-ASCII、ISO-8859-1和UTF-8编码格式的XML数据。如果XML数据...

    SAX2 API (英文html)

    4. **DTDHandler**: 处理DTD(Document Type Definition)事件,如`notationDecl`和`unparsedEntityDecl`,用于解析XML文档的DTD部分。 5. **ErrorHandler**: 处理解析过程中出现的错误和警告,例如`warning`、`...

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

    - 缺点:不支持验证,忽略DTD(文档类型定义),仅支持US-ASCII, ISO-8859-1和UTF-8三种编码。另外,对于需要基于XML结构进行复杂操作的情况,使用起来可能较困难。 - 主要函数:`xml_parse_into_struct`用于将XML...

    nekohtml-1.9.14源码及jar包

    - **DOM解析**:nekohtml基于DOM模型解析HTML,将HTML文档转化为一棵树形结构,便于通过节点操作来处理文档。 - **DTD(Document Type Definition)**:nekohtml支持对HTML和XHTML DTD的理解,可以验证文档是否...

    xml读取,不需要任何jar包

    需要注意的是,虽然Java标准库提供了这些功能,但在某些情况下,如处理大型XML文件或需要更高级的功能(如XPath查询),可能需要引入如Apache DOM4J或JDOM等第三方库,它们提供了更高效、更易用的API。 在提供的`...

    SAX

    - 然后,设置解析器的属性,例如是否忽略XML声明,是否验证文档等。 - 接着,通过解析器的`parse()`方法,指定要解析的XML文件。 - 在解析过程中,解析器会调用预先定义好的事件处理器接口,如`ContentHandler`和...

    xml知识总结

    1. **DOM解析**:将整个XML文档加载到内存,形成一个树形结构,便于遍历和操作。 2. **SAX解析**:事件驱动,逐行读取XML文档,对每个元素、属性等触发相应事件,节省内存。 3. **StAX解析**(流式API):允许程序按...

    PHP XML Expat解析器知识点总结

    PHP中的XML Expat解析器就是一种基于事件的解析器,它不需要进行有效性验证(即忽略DTD声明),因此执行速度快且体积轻巧,非常适合用于PHP开发的Web应用。Expat解析器能够快速解析良好的XML文档,并且遇到不良的XML...

    Java基础学习31.pdf

    - DOM(Document Object Model)操作:使用DOM4J库解析XML,通过`Document`、`Node`、`Element`、`Attribute`和`Text`对象处理XML结构。 - CRUD操作:创建、读取、更新和删除XML数据。 **中高级Java工程师面试知识...

Global site tag (gtag.js) - Google Analytics