Dom4j解析xml

  • Post author:
  • Post category:其他


1 dom4j介绍

dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。

dom4j主要接口都在org.dom4j这个包里定义:

Attribute Attribute定义了XML的属性

Branch Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,

CDATA CDATA 定义了XML CDATA 区域

CharacterData CharacterData是一个标识借口,标识基于字符的节点。如CDATA,Comment, Text.

Comment Comment 定义了XML注释的行为

Document 定义了XML文档

DocumentType DocumentType 定义XML DOCTYPE声明

Element Element定义XML 元素

ElementHandler ElementHandler定义了 Element 对象的处理器

ElementPath 被 ElementHandler 使用,用于取得当前正在处理的路径层次信息

Entity Entity定义 XML entity

Node Node为所有的dom4j中XML节点定义了多态行为

NodeFilter NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)

ProcessingInstruction ProcessingInstruction 定义 XML 处理指令.

Text Text 定义XML 文本节点.

Visitor Visitor 用于实现Visitor模式.

XPath XPath 在分析一个字符串后会提供一个XPath 表达式

2 使用dom4j创建xml文档

Document document = DocumentHelper.createDocument();

通过这句定义一个XML文档对象。

Element root = document.addElement(“根节点名称”);

通过这句定义一个XML元素,这里添加的是根节点。

Element有几个重要的方法:

addComment : 添加注释

addAttribute : 添加属性

addElement : 添加子元素

最后通过XMLWriter生成物理文件,默认生成的XML文件排版格式比较乱,可以通过OutputFormat类格式化输出,默认采用createCompactFormat()显示比较紧凑,最好使用createPrettyPrint()。

实例代码


 1 package cn.mars.app.txn.whpf;
 2 
 3 import java.io.FileOutputStream;
 4 
 5 import org.dom4j.Attribute;
 6 import org.dom4j.Document;
 7 import org.dom4j.DocumentHelper;
 8 import org.dom4j.Element;
 9 import org.dom4j.io.OutputFormat;
10 import org.dom4j.io.XMLWriter;
11 
12 public class Dom4jTest {
13 
14     public static void main(String[] args) {
15         // 创建文档。
16         Document document = DocumentHelper.createDocument();
17         // 设置文档DocType,这里为了举例,添加hibernate的DocType
18         document.addDocType("hibernate-configuration", "-//Hibernate/Hibernate Configuration DTD 3.0//EN",
19                 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
20         // 文档增加节点,即根节点,一个文档只能有一个根节点,多加出错
21         Element root = document.addElement("skills");
22         // 添加注释
23         root.addComment("第一个技能");
24         /



版权声明:本文为ZzzzjQqqq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。