`

xml文件的读写一(dom4j)

阅读更多

读写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");
	}
}

 

分享到:
评论

相关推荐

    读写超大类xml文件,使用dom4j读写xml文件的工具类

    基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    dom4j解析xml详解

    DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...

    dom4j 解析(读取) xml 节点数据

    接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    例子比较简单”的描述中,我们可以推断出这个压缩包包含了一些关于如何使用DOM4J进行XML读写的基本示例。以下是对这些关键知识点的详细解释: 1. **XML解析**:DOM4J支持两种解析XML文档的方式:SAX(Simple API ...

    使用dom4j对xml的读写

    **使用DOM4J对XML的读写** DOM4J是一个非常强大的Java库,专门用于处理XML文档。它提供了丰富的API,使得XML的读取、创建、修改和解析变得简单易行。相较于JDOM,DOM4J确实提供了更多的功能,虽然在学习曲线方面...

    dom4j关于xml读写的例子里面还有dom4j的jar包

    除了基本的读写操作,DOM4J还支持XPath查询,这是一种强大的定位XML元素的方式。通过`XPathExpression`和`XPathFactory`,你可以编写XPath表达式来查找XML文档中的特定节点。例如,`//elementName`可以匹配所有名为`...

    dom4j读写xml文件

    在你的`analysisXml`示例中,很可能是通过DOM4J库读取了一个名为`dom4j.xml`的文件,分析其结构,提取或修改数据,然后再将结果写回新的XML文件。这个过程可能包括获取特定元素、遍历元素树、修改属性值,甚至可能...

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。下载地址 .txt

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    xml解析器-dom4j的支持包_ 教程

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...

    dom4j_XML.rar_DOM4J_dom4j xml

    在这个"dom4j_XML.rar"压缩包中,我们很可能会找到一个实际的示例,展示如何使用DOM4J来解析XML文件。 首先,让我们理解XML(eXtensible Markup Language)的基本概念。XML是一种标记语言,常用于存储和传输数据,...

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务。例如: ```java ...

    Java操作xml文件工具包dom4j源码

    8. **读写XML文件**:DOM4J提供了读取XML文件到`Document`对象,以及将`Document`对象写回XML文件的方法。 9. **修改XML**:通过DOM4J,你可以添加、删除或修改XML元素、属性和文本内容,实现XML文档的动态更新。 ...

    java中dom4j读写XML

    Java中的DOM4J库是一个非常流行的、开源的Java XML API,它提供了强大的XML处理功能,包括XML的读取、创建、修改以及写入。DOM4J是基于DOM模型的,但相比标准的Java DOM,它提供了更加简洁和高效的API,使得开发者在...

    dom4j-xml.rar_DOM4J

    在“dom4j-xml.txt”文件中,可能包含的是一个使用DOM4J操作XML的具体示例。通常,这样的示例会展示如何创建`Document`对象,然后使用`Element`类来添加元素,`Attribute`类来添加属性,`Text`类来添加文本内容。...

    利用dom4j读写xml实例xmldemo

    本实例"xmldemo"将向我们展示如何利用DOM4J进行XML的读写操作。 首先,理解DOM4J的核心概念。DOM4J使用了Document对象来表示整个XML文档,Element代表XML的元素节点,Attribute代表属性,Text代表文本内容。通过...

    dom4j-XML解析.zip

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    dom4j-jar包下载

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...

Global site tag (gtag.js) - Google Analytics