XML(extensible Markup Language)可扩展标记语言,一种用于标记电子文件使其具有结构特征的语言。
1998年2月,W3C正式批准了可扩展
标记语言
的标准定义,可扩展
标记语言
可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展
标记语言
可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。例如电子商务交易等。
xml语言在工程实践中应用越来越广泛,如何通过程序对xml语言进行解析,或者将已经存在的文本信息保存为xml文本的形式,是工程项目中需要解决的一个实际问题。
百度词条中关于dom4j是这样评价的:
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的
JavaXML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的
软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在哪个方面都是非常出色的。如今你可以看到越来越多的Java
软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。
官方文档对于dom4j的定义是:
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
dom4j的主要接口有以下几个内容:
Attribute定义了XML的属性
| |
Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,
| |
CDATA 定义了XML CDATA 区域
| |
CharacterData是一个标识借口,标识基于字符的节点。如CDATA,Comment, Text.
| |
Comment 定义了XML注释的行为
| |
定义了XML文档
| |
DocumentType 定义XML DOCTYPE声明
| |
Element定义XML 元素
| |
ElementHandler定义了 Element 对象的处理器
| |
被
ElementHandler 使用,用于取得当前正在处理的路径层次信息
| |
Entity定义 XML entity
| |
Node为所有的dom4j中XML节点定义了多态行为
| |
NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)
| |
ProcessingInstruction 定义 XML 处理指令.
| |
Text 定义XML 文本节点.
| |
Visitor 用于实现Visitor模式.
| |
XPath 在分析一个字符串后会提供一个XPath 表达式
|
因此,我们在java工程中运用dom4j进行xml文件解析时一般要导入一下几个包:
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
要想获得以上jar包,
可以到http://sourceforge.net/projects/dom4j下载其最新版。
dom4j解析xml的四步
1、以单例模式创建SAXReader对象
2、将xml文件读入到输入流中
3、read方法读取xml文件,转换成document对象
4、通过document对象取到xml文件的节点值
如需源码实例,请参考:http://blog.csdn.net/jiuqiyuliang/article/details/38110907