package cn.csdn.dom;
import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;
public class Dom4jTest {
private static Document doc;
/*转载xml文档 到xml文档的Document对象*/
static{
//创建dom4j解析器对象
SAXReader reader = new SAXReader();
//解析器对象 解析指定的xml文档 返回 Document对象
try {
doc = reader.read(new File("src/book.xml"));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void root(){
System.out.println(doc);
//怎么获取文档的根结点呢
Element root = doc.getRootElement();
listElements(root);
}
//遍历整个文档的元素节点
private void listElements(Element root) {
System.out.println("元素节点名称:"+root.getName());
Iterator<Node> it = root.elementIterator();
while(it.hasNext()){
Node node = it.next();
listElements((Element) node);
}
}
//查找指定的元素节点
@Test
public void findElement(){
Element root = doc.getRootElement();
Element book = root.element("书");
Element name = book.element("书名");
System.out.println(name.getText());
}
//在指定位置添加节点
@Test
public void addElement() throws Exception{
Element root = doc.getRootElement();
Element book = root.element("书");
Element name = book.element("书名");
Element author = DocumentHelper.createElement("作者");
author.setText("大海");
List<Node> nodes = book.elements();
nodes.add(1, author);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter( "src/book.xml" ));
writer.write(doc);
writer.close();
}
//在指定位置删除节点
@Test
public void deleteElement() throws Exception{
Element root = doc.getRootElement();
Element book = root.element("书");
Element name = book.element("书名");
name.remove(name.element("作者"));
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter( "src/book.xml" ));
writer.write(doc);
writer.close();
}
//遍历某个元素节点的属性
@Test
public void attr(){
Element root = doc.getRootElement();
int count = root.attributeCount();
System.out.println(count);
for(int i=0;i<count;i++){
Attribute attribute = root.attribute(i);
System.out.println(attribute.getName()+"=="+attribute.getValue());
}
}
//删除某个元素节点的属性
@Test
public void delAttr()throws Exception{
Element root = doc.getRootElement();
/*
Attribute xm = root.attribute("xm");
root.remove(xm);*/
/*root.addAttribute("xm", "cccc");*/
Attribute xm = root.attribute("xm");
xm.setText("修改呢");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileWriter( "src/book.xml" ));
writer.write(doc);
writer.close();
}
}
分享到:
相关推荐
**DOM4J详解与实例应用** DOM4J是一款强大的Java XML处理库,它提供了一种灵活且高效的方式来处理XML文档。DOM4J以其简洁的API、高性能和丰富的功能,成为了许多Java开发者在处理XML时的首选工具。在这个实例中,...
3. **dom4j实例**: - 解析XML:`DocumentFactory`创建`Document`,`XMLReader`读取XML文件。 - 查找元素:`selectNodes()`使用XPath表达式选择元素,`elementIterator()`遍历元素集合。 - 修改XML:`setText()`...
**DOM4J详解与实践** DOM4J是一个强大的Java XML处理库,它提供了一套灵活且功能丰富的API,用于解析、构建、修改和操作XML文档。DOM4J的名字中的“4J”代表它是为了Java平台设计的,它以其高效性和易用性在Java...
想找一个有道词典单词本能导入bing词典的工具,没搜到,正好练习dom4j,就花几天时间自己写了一个。 包括源码、可执行jar、比较详尽的注释。 里面有的方法还是挺复杂的,如果谁有更简洁、酷炫的写法,欢迎讨论 ...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、查询和修改变得更为简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的安装及其在Maven项目中的应用。 首先,DOM4J...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得XML的读取、写入、遍历以及修改变得容易。在这个压缩包中,你将找到一个DOM4J用于XML操作的例子,这对于初学者来说是一个很好的学习...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
**DOM4J属性及应用详解** DOM4J是Java领域中一个非常流行的XML处理库,它提供了丰富的API来解析、创建、操作XML文档。...通过阅读《DOM4J实例文档》中的详细教程和示例,可以更深入地理解DOM4J的使用方法和最佳实践。
在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...
在"dom4jdemo"这个子文件夹中,很可能是包含了一个或多个Java源代码文件,演示了如何使用DOM4J进行XML操作的实例。这些代码通常会包含导入DOM4J库的语句,如`import org.dom4j.Document;`和`import org.dom4j....
接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及文档存储等...在提供的"dom4j实例.pdf"文件中,您应该能找到更详细的代码示例和解释,帮助您进一步掌握DOM4J的使用。
在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们将详细探讨这两种解析方法。 DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一...
下面是一个使用DOM4J的简单实例,展示了如何读取和解析XML文件: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public ...
此文档包含了Dom4J常用的操作(对于一般的应用足够了)和实例,可模仿开发
本文将深入探讨DOM、DOM4J和SAX三种常用的XML解析方法,并结合具体的实例进行详细讲解。 首先,DOM(Document Object Model)是W3C组织推荐的一种XML解析标准。它将整个XML文档加载到内存中,构建一个树形结构,...
### 四、DOM4J查询XML 1. **XPath查询**: DOM4J支持XPath表达式进行复杂查询。首先,需要创建`XPath`对象,并使用`compile()`方法编译XPath字符串,然后调用`evaluate()`方法执行查询。 ```java XPath xpath = ...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的方式来解析、创建、操作和构建XML数据。这个压缩包包含了DOM4J的源代码和预编译的jar文件,对于开发者来说,这是一个宝贵的资源,可以深入...
本文将通过一系列实例引导读者深入了解DOM4J的特性,并展示如何在实际项目中有效利用这一工具。 #### DOM4J概述 DOM4J的核心设计原则是基于接口,这意味着用户可以通过实现自定义的`DocumentFactory`来创建自己的...