`
dianziermu
  • 浏览: 139733 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dom4j验证xml

    博客分类:
  • XML
阅读更多

用dom4j来验证xml文件是否匹配本地的一个dtd真的是相当方便

官方包下载地址:http://www.dom4j.org/download.html

XmlMain.java文件:

 

package com.dianzi.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
 * @author dianzi
 *
 */
public class XmlMain {

 /**
  * @param args
  */
 public static void main(String[] args) {

  File file = new File("./src/com/dianzi/test/Log-Sample01.xml");
  if (file.exists()) {
   SAXReader builder = new SAXReader();
  
   builder.setValidation(false);//不验证xml文件内的dtd
   builder.setEntityResolver(new EntityResolver() {
    public InputSource resolveEntity(String publicId,
      String systemId) throws SAXException, IOException {
      

     // ////////////////////////////
     /* return new InputSource("./log.dtd");//此句return可用以下一直到return is代替*/
     InputStream stream = new FileInputStream(
       "./src/com/dianzi/test/log.dtd");
     InputSource is = new InputSource(stream);
     is.setPublicId(publicId);
     is.setSystemId(systemId);
     return is;
    }
   });

   try {
    
    Document doc = builder.read(file);
    System.out.println(doc);
   } catch (Exception e) {
    e.printStackTrace();
   }
  } else {
   System.out.println("can not find xml file:"
     + file.getAbsolutePath());
  }

 }

}

 

 

Log-Sample01.xml文件:

 

 

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">

<display>
 <category name="CMS底层管理">
  <portlet id="templateportlet"/>
  <portlet id="ComponentPortlet"/>
 </category>
</display>

 

 

 

log.dtd文件:

 

<!--
This is the DTD for the Display parameters for Liferay Portal.

<!DOCTYPE display PUBLIC
 "-//Liferay//DTD Display 4.0.0//EN"
 "http://www.liferay.com/dtd/liferay-display_4_0_0.dtd">
-->


<!ELEMENT display (category*)>


<!ELEMENT category (category*, portlet*)>


<!ATTLIST category
 name CDATA #REQUIRED
>


<!ELEMENT portlet (#PCDATA)>


<!ATTLIST portlet
 id CDATA #REQUIRED
>
 

 

最后导入最新的dom4j-1.6.1.jar开发包就ok了,至于如何解析遍历xml文件还在研究中

 

 

 

 

2
0
分享到:
评论

相关推荐

    XSD使用dom4j校验XML

    总之,DOM4J结合XSD提供了一种高效且灵活的方式来验证XML文件的结构和内容。这对于保证数据交换的准确性和一致性具有重要意义,特别是在需要处理大量XML数据的系统中。理解和掌握这一技术,能够帮助开发者提高代码的...

    java中dom4j读写XML

    DOM4J不仅提供了基本的XML操作,还支持命名空间、事件处理、DTD和XML Schema验证等功能,是Java开发中处理XML的强大工具。学习和掌握DOM4J,能够极大地提高开发效率,特别是在需要频繁处理XML数据的场景下。

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    5. **XML Schema支持**:DOM4J能够处理XML Schema,进行XML文档的验证,确保数据的正确性。 6. **StAX(Streaming API for XML)支持**:DOM4J也支持StAX解析器,这种解析方式结合了SAX的高效和DOM的易用性,可以在...

    dom4j基于xml做数据库的登录与注册 动态验证码

    综上所述,DOM4J在基于XML的登录注册系统中起到了桥梁的作用,连接着数据库和XML数据的读写,同时也涉及到了动态验证码的生成和验证,以及用户认证的安全性。理解和掌握DOM4J的使用,对于构建这样的系统至关重要。

    dom4j解析xml文件必备jar包

    DOM4J可以与Xerces一起工作,以提供更全面的XML处理能力,特别是当需要进行XML Schema验证时。 使用这些库文件,开发者可以轻松构建XML处理程序。例如,你可以使用DOM4J来读取XML文件,通过Jaxen执行XPath查询来...

    Dom4j解析XML+使用简介

    3. **XML Schema验证**: Dom4j提供API来验证XML文档是否符合特定的XML Schema定义。 4. **DOM4J与JAXB集成**: 两者结合可以方便地进行XML到Java对象的映射,以及反之。 **五、Dom4j的优势** 1. **简洁API**: Dom4...

    DOM4J解析XML时DTD路径问题

    当DOM4J遇到一个带有DTD声明的XML文档时,它会尝试访问DTD文件并根据其内容验证XML文档的合法性。 #### 问题分析 在DOM4J解析过程中,如果XML文件包含了如下的DTD声明: ```xml &lt;!DOCTYPE struts PUBLIC "-//...

    DOM4J解析XML数据

    5. **XML Schema支持**:DOM4J能够处理XML Schema,用于验证XML文档是否符合定义的规则。 6. **可扩展性**:DOM4J设计为模块化,方便添加新的功能或适配器,以适应不断变化的需求。 **XML解析的基本步骤** 1. **...

    通过Dom4j创建和读取xml文件下载

    在Java编程中,DOM4J是一个非常流行的XML处理库,它提供了一套强大的API来创建、解析和操作XML文档。本教程将详细讲解如何利用DOM4J进行XML文件的创建和读取。首先,我们需要了解DOM4J的核心概念,如Element、...

    dom4j解析XML的两个JAR包(dom4j-1.6.1.jar 和 jaxen.jar)

    4. **XML Schema和DTD处理**:DOM4J可以验证XML文档是否符合指定的XML Schema或者DTD,确保数据的准确性和一致性。 5. **便捷的API**:DOM4J的API设计得直观易用,使得XML编程变得更加友好,降低了学习曲线。 ...

    dom4j读写xml

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的API,使得XML的读取、创建、修改以及写入变得容易。在本文中,我们将深入探讨DOM4J库在XML处理中的核心概念和使用方法。 1. **DOM4J的基本概念...

    Java用DOM4J读取XML

    DOM4J不仅兼容DOM和SAX,还提供了额外的功能,如自动命名空间处理、文档验证等。 DOM4J的一些特点包括: - **轻量级**:DOM4J相比标准的DOM实现更加轻量,消耗更少的内存。 - **易用性**:DOM4J提供了一套直观且...

    Dom4J解析XML源代码

    XML(eXtensible Markup Language)是一种用于标记数据的语言,...Dom4J还提供了许多高级功能,如XPath查询、XML Schema验证等。通过熟练掌握这些方法,你可以更高效地处理XML数据,为Java应用程序提供强大的数据支持。

    dom4j进行xml文档的解析

    DOM4J还支持许多高级特性,如XML Schema验证、Namespace处理、事件驱动的处理模式(类似SAX)等。它提供了丰富的API,使得开发者可以灵活地处理XML文档,无论是简单的读取还是复杂的转换和操作,DOM4J都能胜任。 在...

    Dom4j解析xml java代码附带chm英文API

    要开始使用Dom4j解析XML文件,首先需要在项目中引入Dom4j库。如果你的项目使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;dom4j &lt;artifactId&gt;dom4j &lt;version&gt;2.1.3 ``` 接下来,我们将通过一...

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    5. 支持XML Schema和DTD:能够验证XML文档是否符合预定义的模式或规范。 接下来,DOM4J 2.0.0-ALPHA是后续的一个实验性版本,引入了一些新特性和改进。这个版本可能包含一些未成熟的功能,但预示着DOM4J未来的发展...

    dom4j.jar,dom,xml,dom4j

    此外,DOM4J还包含了XML Schema和DTD(Document Type Definition)的支持,可以用于验证XML文档是否符合定义的结构。这对于确保数据的准确性和一致性至关重要。 DOM4J-1.6.1.jar是DOM4J的一个版本,发布于2006年。...

    dom4j dom4j dom4j dom4j

    6. **XML Schema支持**:DOM4J能够处理XML Schema,进行XML文档的验证,确保数据的正确性。 7. **XML编解码**:DOM4J提供了XML编码和解码的功能,可以将Java对象序列化为XML,也可以将XML反序列化为Java对象。 8. ...

    Dom4j对xml文件做增删改查(使用分层思想)

    Dom4j是Java社区中一个非常流行的处理XML的库,它提供了全面且强大的API来解析、创建、操作XML文档。在这个案例中,我们将深入探讨如何利用Dom4j实现XML文档的增删改查操作,并遵循分层架构的思想来组织代码。 **一...

    Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读

    标题"Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读"中包含了几个关键信息点:`Dom4j`、`demo`以及`xml读`。这表明这是一个关于使用Dom4j库进行XML读取操作的示例项目。`Dom4j`是Java中一个...

Global site tag (gtag.js) - Google Analytics