没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
dom4j
1
dom4j
雪飘寒
2010-10-18
目录
dom4j ............................................................................ 1
目录 ............................................................................. 1
一、dom4j介绍 .................................................................... 2
二、使用dom4j创建xml文档 ........................................................... 3
三、使用dom4j解析xml文件 ........................................................... 5
1. 构建dom4j树 ................................................................ 5
2. 获取节点 ................................................................... 5
3. 获取属性 ................................................................... 6
4. 使用XPath获取节点和属性 ...................................................... 6
四、使用dom4j修改xml文件 ........................................................... 7
五、常用方法 ...................................................................... 8
1.Element元素API ............................................................. 8
2. Attribute属性API .......................................................... 8
2. 字符串转化 ................................................................. 8
3. 命名空间(Namespace)操作 .................................................... 8
六、Qname介绍 ................................................................... 10
七、Visitor模式 ................................................................. 11
dom4j
2
一、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 表达式
看名字大致就知道它们的涵义如何了。要想弄懂这套接口,关键的是要明白接口的继承关系:
o interface java.lang.Cloneable
o interface org.dom4j.Node
interface org.dom4j.Attribute
interface org.dom4j.Branch
interface org.dom4j.Document
interface org.dom4j.Element
interface org.dom4j.CharacterData
interface org.dom4j.CDATA
interface org.dom4j.Comment
interface org.dom4j.Text
interface org.dom4j.DocumentType
interface org.dom4j.Entity
interface org.dom4j.ProcessingInstruction
一目了然,很多事情都清楚了。大部分都是由 Node 继承来的。知道这些关系,将来写程序就不会出
现 ClassCastException 了。
dom4j
3
二、使用 dom4j 创建 xml 文档
Document document = DocumentHelper.createDocument();
通过这句定义一个 XML 文档对象。
Element root = document.addElement("
根节点名称");
通过这句定义一个 XML 元素,这里添加的是根节点。
Element 有几个重要的方法:
addComment : 添加注释
addAttribute : 添加属性
addElement : 添加子元素
最后通过 XMLWriter 生成物理文件,默认生成的 XML 文件排版格式比较乱,可以通过 OutputFormat 类格
式化输出,默认采用 createCompactFormat()显示比较紧凑,最好使用 createPrettyPrint()。
实例代码
public static void main(String[] args) {
//
创建文档。
Document document = DocumentHelper.createDocument();
//
设置文档
DocType
,这里为了举例,添加
hibernate
的
DocType
document.addDocType("hibernate-configuration",
"-//Hibernate/Hibernate Configuration DTD 3.0//EN",
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
//
文档增加节点,即根节点,一个文档只能有一个根节点,多加出错
Element root = document.addElement("skills");
//
添加注释
root.addComment("
第一个技能
");
//
根节点下添加节点
Element first = root.addElement("skill");
//
节点添加属性
first.addAttribute("name", "
独孤九剑
");
//
节点下添加节点
Element info = first.addElement("info");
//
节点设置内容数据
info.setText("
为独孤求败所创,变化万千,凌厉无比。其传人主要有风清扬、令狐冲。
");
//
同理增加其他节点,内容,属性等
Element second = root.addElement("skill");
second.addAttribute("name", "
葵花宝典
");
Element info2 = second.addElement("info");
info2.setText("
宦官所创,博大精深,而且凶险至极。练宝典功夫时,首先要自宫净身。
");
/**
*
第二种方法增加节点,内容,属性等。先创建节点,属性,然后使用
add
加入。
*/
//
创建节点
Element third = DocumentHelper.createElement("skill");
//
将节点加入到根节点中
root.add(third);
//
创建属性,第一个参数指定了拥有者,也可以为
null
,指定拥有者
Attribute name = DocumentHelper.createAttribute(third, "name", "
北冥神功
");
// 将属性加入到节点上
剩余11页未读,继续阅读
资源评论
- sunqj_fa2016-06-19正是我需要的,要是再详细一点就更好了
- qq_167850452015-05-13ok很好的资料,一般般吧
Lua598
- 粉丝: 13
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功