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 表达式看名字大致就知道它们的涵义如何了。要想弄懂这套接口,关键的是要明白接口的继承关系,如下图:
一目了然,很多事情都清楚了。大部分都是由 Node 继承来的。知道这些关系,将来写程序就不会出现 ClassCastException 了。