`
dianziermu
  • 浏览: 137682 次
  • 性别: 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
分享到:
评论

相关推荐

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

    根据dom4j自己写如何使用dom4j解析xml文件(Java代码)希望对大家有点用处

    Java+flex使用dom4j读写xml

    2.Java方面,使用dom4j对xml进行操作,包括节点的读取,添加,修改,删除。 3.Flex方面,使用DataGrid呈现数据;使用RemoteObject构建和Java的通信;使用到了验证控件Validator;使用了CSS样式对Alert对话框进行了...

    dom4j.jar 下载

    dom4j.jar包用于解析xml文档使用,已经验证,解压引入工程即可使用

    dom4.jar包,高效xml解析

    dom4j是现在见到的解析xml效率最高的jar包,并且支持XPath定位,xml schema验证等功能。

    xml的序列化与验证

    1、xml序列化的Java3种实现方法 ...1)Dom4j的SAXValidator (dom4j.jar, javax.xml.parsers 相关类) 2)Javax.xml.validation API(Java1.5及以上) 3)Jdom(jdom.jar,xerces.jar) 4、详细说明ppt文档

    dom4j 例子,演示了3个功能

    例子演示了3个功能 1、创建、读取XML 2、XML通过XSL转换成HTML 3、验证XSL

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

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

    Java通过XML Schema校验XML

    ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。

    XML与Web技术

    XML技术与Web程序设计,这本是课程大作业,现已提交,分享出来供大家参考,java语言,用的dom4j解析创建xml文档,还有清晰的xsd文件,里面用了正则对相关数据进行了验证,3个xml文件,一个可以分页显示全部信息,一...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    XML对这一原理进行了深化和扩展,用XML,你可以描述你的信息在哪里,你可以通过meta来验证信息,执行搜索,强制显示,或者处理其他的数据。 下面是一些XML metadata在实际应用中的用途: 1.可以验证数字签名,使...

    xerces-c++-3.1.3

    Xerces是一个开放源代码的XML语法分析器。 Xerces-C++ 的前身是 IBM 的...其特征及功能包括:兼容XML 1.0,能记录最近的DOM和SAX规范,可编程产生和验证XML,具有可内插的目录,具有验证和编码器,进行可定制错误处理。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    java大作业,实现学生信息增删改查

    必须使用XML文件来进行存储,必须使用DOM4J来实现XML操作。 XML文件格式如下:该文件存储名称必须为/WEB-INF/students.xml。必须实现安全验证,只有注册的用户才能 登陆系统,进行学生信息的管理。必须考虑并发...

    socks代理服务器

    java语言编写,基于socks v5协议实现socks代理服务器;其中包括一个客户端,一个应用...实现无验证模式和用户名/密码验证模式,可以自由选择,使用dom4j开源工具操作xml配置文件,里面包含dom4j.jar包,添加即可使用

    jaxen:Java的Jaxen XPath引擎

    它适用于许多不同的对象模型,包括DOM,XOM,dom4j和JDOM。 还可以编写将非XML树(例如已编译的Java字节码或Java bean)视为XML的适配器,从而使您也可以使用XPath查询这些树。 当前版本是1.2.0 。 此版本需要Java ...

    CTaa20-21-JacopoGentili:Jacopo Gentili 的文本编码课程存储库

    验证工具 di validazione XML Xerces-J $ java -cp \ " Xerces-J-bin.2.12.1/xerces-2_12_1/xml-apis.jar; \ Xerces-J-bin.2.12.1/xerces-2_12_1/xercesImpl.jar; \ Xerces-J-bin.2.12.1/xerces-2_12_1/...

    (超赞)JAVA精华之--深入JAVA API

    3.2 Dom4j 使用简介 3.3 Java 语言的 XML 验证 API 3.4 hibernate的hello word 3.5 JavaMail(JAVA邮件服务)API详解 3.6 jxl.jar 包简介 3.7 Java与XML联合编程之SAX篇 3.8 Java与XML联合编程之DOM篇 4 其他 4.1 ...

Global site tag (gtag.js) - Google Analytics