Dom4j解析xml

本文详细介绍了Java中强大的XML处理库Dom4j,包括创建和解析XML文档、使用XPath获取节点和属性、修改XML文件以及Element、Attribute等核心接口的常用方法。此外,还探讨了Qname概念和Visitor模式的应用。
摘要由CSDN通过智能技术生成

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         /
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值