读写xml文件的方法很多,这里就简单的记录一下用dom4j读写的过程
package xmltest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XMLDom4j {
/**
* 读取xml文件
* @param fileName
*/
public void readXMLFile(String fileName){
ClassLoader loader = XMLDom4j.class.getClassLoader();
Object path = loader.getResource(fileName);
//如果文件不存在就创建一个
if(path == null){
return;
}
SAXReader reader = new SAXReader();
InputStream is;
try {
is = new FileInputStream("D:/NewWorkSpace/SampleWebTest/WebRoot/WEB-INF/classes/books.xml");
Document doc = reader.read(is);
Element root = doc.getRootElement();
Element data;
Iterator<UserInfo> itr = root.elementIterator("user");
while(itr.hasNext()){
data = (Element) itr.next();
System.out.println(data.attributeValue("name"));
System.out.println(data.elementText("age"));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (DocumentException e) {
e.printStackTrace();
}
}
/**
* 保存xml文件
* @param fileName
* @param userList
*/
public void saveXMLFile(String fileName,List<UserInfo> userList){
ClassLoader loader = XMLDom4j.class.getClassLoader();
Object path = loader.getResource(fileName);
//如果文件不存在就创建一个
if(path == null){
createXMLFile(fileName);
}
//把list里面的元素添加到xml文件里面
Document document = DocumentHelper.createDocument();// 创建一个xml document对象
Element users = document.addElement("Users");// 创建根节点元素
for(int i=0;i<userList.size();i++){
UserInfo userInfo = userList.get(i);
Element user = users.addElement("user");
user.addAttribute("name", userInfo.getName());
Element age = user.addElement("age");
age.setText(userInfo.getAge());
Element sex = user.addElement("sex");
sex.setText(userInfo.getSex());
}
try {
// 创建一个xml写入流,将生成的xml文件写入指定的文件中
// 使用优雅的方式写入(一共有三种方式:普通方式,优雅方式和紧凑方式)
//紧凑方式写入format = OutputFormat.createCompactFormat();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter output = new XMLWriter(
new FileWriter(new File("src/books.xml")), format);
output.write(document);
output.close();
}
catch (IOException e) {
System.out.println(e.getMessage());
}
}
/**
* 创建一个xml文件
* @param fileName
*/
public void createXMLFile(String fileName){
Document document = DocumentHelper.createDocument();// 创建一个xml document对象
Element users = document.addElement("Users");// 创建根节点元素
// XML 声明 <?xml version="1.0" encoding="UTF-8"?> 自动添加到 XML 文档中。
try {
// 创建一个xml写入流,将生成的xml文件写入指定的文件中
// 使用优雅的方式写入(一共有三种方式:普通方式,优雅方式和紧凑方式)
//紧凑方式写入format = OutputFormat.createCompactFormat();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter output = new XMLWriter(
new FileWriter(new File("src/books.xml")), format);
output.write(document);
output.close();
}
catch (IOException e) {
System.out.println(e.getMessage());
}
}
public static void main(String args[]){
XMLDom4j xmldom4j = new XMLDom4j();
List<UserInfo> userList = new ArrayList<UserInfo>();
for(int i=0;i<5;i++){
UserInfo u = new UserInfo();
u.setAge("age"+i);
u.setName("name"+i);
u.setSex("sex"+i);
userList.add(u);
}
//xmldom4j.saveXMLFile("userInfo.xml", userList);
xmldom4j.readXMLFile("books.xml");
}
}
分享到:
相关推荐
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...
接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...
例子比较简单”的描述中,我们可以推断出这个压缩包包含了一些关于如何使用DOM4J进行XML读写的基本示例。以下是对这些关键知识点的详细解释: 1. **XML解析**:DOM4J支持两种解析XML文档的方式:SAX(Simple API ...
**使用DOM4J对XML的读写** DOM4J是一个非常强大的Java库,专门用于处理XML文档。它提供了丰富的API,使得XML的读取、创建、修改和解析变得简单易行。相较于JDOM,DOM4J确实提供了更多的功能,虽然在学习曲线方面...
除了基本的读写操作,DOM4J还支持XPath查询,这是一种强大的定位XML元素的方式。通过`XPathExpression`和`XPathFactory`,你可以编写XPath表达式来查找XML文档中的特定节点。例如,`//elementName`可以匹配所有名为`...
在你的`analysisXml`示例中,很可能是通过DOM4J库读取了一个名为`dom4j.xml`的文件,分析其结构,提取或修改数据,然后再将结果写回新的XML文件。这个过程可能包括获取特定元素、遍历元素树、修改属性值,甚至可能...
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...
在这个"dom4j_XML.rar"压缩包中,我们很可能会找到一个实际的示例,展示如何使用DOM4J来解析XML文件。 首先,让我们理解XML(eXtensible Markup Language)的基本概念。XML是一种标记语言,常用于存储和传输数据,...
要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务。例如: ```java ...
8. **读写XML文件**:DOM4J提供了读取XML文件到`Document`对象,以及将`Document`对象写回XML文件的方法。 9. **修改XML**:通过DOM4J,你可以添加、删除或修改XML元素、属性和文本内容,实现XML文档的动态更新。 ...
Java中的DOM4J库是一个非常流行的、开源的Java XML API,它提供了强大的XML处理功能,包括XML的读取、创建、修改以及写入。DOM4J是基于DOM模型的,但相比标准的Java DOM,它提供了更加简洁和高效的API,使得开发者在...
在“dom4j-xml.txt”文件中,可能包含的是一个使用DOM4J操作XML的具体示例。通常,这样的示例会展示如何创建`Document`对象,然后使用`Element`类来添加元素,`Attribute`类来添加属性,`Text`类来添加文本内容。...
本实例"xmldemo"将向我们展示如何利用DOM4J进行XML的读写操作。 首先,理解DOM4J的核心概念。DOM4J使用了Document对象来表示整个XML文档,Element代表XML的元素节点,Attribute代表属性,Text代表文本内容。通过...
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...