dom4j是一个简单的、灵活的开放源代码的库,支持XML、XPath和XSLT。与JDOM一样,dom4j也应用于Java平台。dom4j API使用了Java集合框架并完全支持DOM、SAX和JAXP。
dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。
dom4j API介绍
dom4j-1.6.1 API共有14个包,其中org.dom4j包中包括了表示XML文档组成部分的接口,org.dom4j.io包中包括了构建dom4j文档树的类,以及输出dom4j文档树的类。
(1)创建XML文档
在org.dom包中提供了一个DocumentHelper类,该类中多有的方法都是静态方法,其中就包括了创建XML文档各个组成部分的方法。
Document doc=DocumentHelper.createDocument();
Element eltRoot=DocumentHelper.createElement("student");
doc.setRootElement(eltRoot);
也可以先创建跟元素对象,然后在创建文档对象的同时制定根元素,如下:
Element eltRoot=DocumentHelper.createElement("student");
Document doc=DocumentHelper.createDocument(eltRoot);
(2)添加属性
在dom4j中,添加属性与JDOM一样简单,如下:
eltRoot.addAttribute("sn","01");
(3)增加子元素以及设置元素内容
在Branch接口中,定义了addElement()方法,如下:
public Element addElement(String name)
该方法用指定的name为当前节点添加一个子元素节点,并返回新节点的引用。我们使用这个方法,为根元素添加子元素,如下:
Element eltName=eltRoot.addElement("name");
Element eltAge=eltRoot.addElement("age");
eltName.setText("awang");
eltAge.setText("22");
(4)输出文档
dom4j提供了XML文档的多种输出形式。在org.dom4j.io包中,DOMWriter类可以将dom4j树输出为W3C DOM的Document对象,SAXWriter类可以将dom4j树作为SAX事件流输出,而XMLWriter类则提供了将dom4j树的各个部分以XML流的方式输出的能力。
例如,下面的代码将创建的XML文档输出到屏幕上:
XMLWriter xmlWriter=new XMLWriter();
xmlWriter.write(doc);
你也可以选择输出到文件中,如下:
XMLWriter xmlWriter=new XMLWriter(new java.io.FileWriter("student.xml"));
xmlWriter.write(doc);
xmlWriter.close();
dom4j还提供了控制文档输出格式的类org.dom4j.io.OutputFormat。利用这个类可以设置输出文档的字符编码、设置行分隔符、缩进字符串等。
下面的代码设置输出格式使用4个空格作为缩进字符串,元素之间添加新行。
OutputFormat outFmt=new OutputFormat(" ",true);
XMLWriter xmlWriter=new XMLWriter(outFmt);
xmlWriter.write(doc);
下面的代码使用美化的格式输出文档,设置字符编码为GB2312,并使用4个空格作为缩进。
OutputFormat outFmt=OutputFormat.createPrettyPrint();
outFmt.setEncoding("GB2312");
outFmt.setIndent(" ");
XMLWriter xmlWriter=new XMLWriter(outFmt);
xmlWriter.write(doc);
(5)构建dom4j树
dom4j在org.dom4j.io包中,提供了两个类:DOMReader和SAXReader,DOMReader从一个现有的W3C DOM树构建dom4j树,而SAXReader则使用SAX解析器,从不同的输入源来构建dom4j树。
以SAXReader类来构建dom4j来构建dom4j文档对象的代码如下:
SAXReader saxReader=new SAXReader();
File file=new File("student.xml");
Document doc=saxReader.read(file);
(6)访问根元素
在Document类中,给出了getRootElement()方法,用于返回文档的根元素。如下:
Element root=doc.RootElement();
(7)访问节点
要得到某个元素的所有子元素,如下:
java.util.List childrenList=elt.elements();
要得到某个元素的具有给定名称的所有子元素,如下:
java.util.List childrenList=elt.elements("student");
要得到某个元素的具有给定名称的第一个字元素,如下:
Element eltChild=elt.element("student");
要迭代某个元素的所有子元素,如下:
for(java.util.Iterator it=root.elementIterator();it.hasNext();)
{
Element element=(Element)it.next();
}
要删除某个元素,可以用Branch接口中定义的remove()方法,如下:
Element eltStu=root.element("student");
root.remove(eltStu);
(8)访问属性
要得到某个元素的所有属性,如下:
java.util.List sttrList=elt.attributes();
要得到指定的属性,如下:
Attribute attr=elt.attribute("sn");
要得到某个属性的值,如下:
String attrValue=elt.attributeValue("sn");
要删除某个属性,如下: elt.remove(elt.attribute("sn"));
分享到:
相关推荐
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
**Dom4j 使用指南** Dom4j 是一个非常流行的Java库,用于处理XML文档。它提供了灵活、高效的方式来解析、创建、操作XML内容...通过阅读并实践这个“Dom4j使用指南”,开发者可以快速掌握XML处理的技能,提升开发效率。
总之,DOM4J 1.6.1是一个功能强大且广泛使用的XML处理库,它的Maven集成使得在Java项目中使用变得方便。无论是创建XML文档、查询XML结构还是进行XML数据操作,DOM4J都能提供简洁、高效的API。在安装和使用过程中,...
DOM4J 的使用 DOM4J 是一个开源的 XML 解析包,由 dom4j.org 出品,应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM、SAX 和 JAXP。DOM4J 的主要特点是使用大量的接口,所有主要接口都在 org.dom4j 里面定义...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、修改和查询变得简单。...了解并掌握DOM4J的使用,对于任何涉及XML的Java开发者来说都是非常有价值的技能。
1. **介绍**:解释DOM4J的基本概念和设计目标,以及如何在项目中引入DOM4J库。 2. **安装与配置**:指导用户如何将DOM4J添加到Java项目中,包括Maven依赖、Gradle构建脚本或者直接添加JAR文件。 3. **基本概念**:...
尽管DOM4J功能强大,但在某些特定情况下,如需要高度优化的性能或内存使用,可能需要考虑其他XML处理库,如StAX(Streaming API for XML)或VTD-XML。不过对于大多数常规XML处理任务,DOM4J已经足够胜任,并且由于其...
这个标签直接关联了DOM4J库的核心文件,表明讨论的内容与DOM4J的使用和特性有关。 **文件名称列表:xml** 这个列表只包含了一个条目"xml",可能意味着压缩包中包含的是与XML相关的文件或资源,可能是XML示例文件、...
总的来说,这个"dom4j基本例子"涵盖了DOM4J的基本操作,包括XML的解析、元素的增删改查以及使用XPath进行查询。通过学习和理解这个例子,你可以更好地掌握DOM4J库,并将其应用到自己的XML处理任务中。如果你深入研究...
"dom4j-2.1.3-javadoc.jar"文件则包含了DOM4J库的API文档,是开发者学习和使用DOM4J的重要参考资料。通过这个文件,我们可以查找类、接口、方法的详细说明,理解它们的功能和使用方式,这对于开发过程中快速定位问题...
通过理解并熟练使用DOM4J,开发者可以更高效地处理XML相关的任务,提高代码的可维护性和可读性。同时,由于其开源和社区活跃,DOM4J还拥有丰富的文档和社区支持,遇到问题时可以方便地找到解决方案。
首先,让我们深入了解DOM4J的基本概念。DOM4J采用了Document Object Model (DOM)接口,但它的实现更加轻量级,性能更优。DOM4J的核心类包括`Element`、`Attribute`、`Document`和`Namespace`等,它们分别代表了XML...
**DOM4J使用简介** DOM4J 是一个强大的 Java 库,专为处理 XML 文档而设计。它提供了丰富的 API,使得在 Java 中解析、创建、修改 XML 文件变得简单高效。DOM4J 不仅支持 DOM(文档对象模型)和 SAX(简单API for ...
1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象。 ```java SchemaFactory schemaFactory = DocumentHelper.createSchema(new File("path_to_xsd_file.xsd...
**DOM4J使用教程** DOM4J是一款非常优秀的Java XML API,它提供了全面而强大的功能,包括XML的解析、创建、修改以及查询等操作。在Java世界中,DOM4J因其简单易用和高效性而备受青睐。这篇教程将深入探讨DOM4J的...
【DOM4J基础使用指南】 DOM4J是一个强大的开源XML解析库,专为Java平台设计。它不仅提供了对DOM(文档对象模型)、SAX(简单API for XML)和JAXP(Java API for XML Processing)的支持,还融入了Java集合框架,...
DOM4J是基于DOM模型的,但相比Java内置的DOM API,DOM4J更轻量级且易于使用。它支持XPath查询,提供了丰富的事件处理机制,并且与JDOM和XOM等其他XML库有良好的互操作性。DOM4J的2.0.3版本修复了一些已知问题,提升...
5. **DOM4J与JDOM兼容**:DOM4J设计时考虑到了与流行的JDOM库的兼容性,这使得已经在使用JDOM的项目更容易迁移到DOM4J。 6. **丰富的API**:DOM4J提供了一套丰富的API,使得操作XML文档如同操作Java对象一样简单。...
在解压后的文件“dom4j”中,可能包含了DOM4J库的源码、API文档、示例代码等资源,这对于深入理解和使用DOM4J非常有帮助。通过阅读源码,可以了解其实现原理;查看API文档,可以快速找到所需功能的方法和接口;运行...