要求:

1.生成一个XML文档:

<?xml version="1.0" encoding="utf-8"?>
<Students> 
   <Student id="1"> 
     <name>张三</name>  
     <gender>男</gender>  
     <grade>计算机一班</grade>  
     <address>广州天河</address> 
   </Student>  
   <Student id="2"> 
     <name>李四</name>  
     <gender>女</gender>  
     <grade>计算机二班</grade>  
     <address>广州越秀</address> 
   </Student> 
 </Students>

2.将id为2的学生的姓名修改为张丽

实现代码:

package gz.itcast.a_dom4j_read;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

public class Demo_Write1 {
	public static void main(String[] args) throws Exception {
		//一、创建一个XML文档
		Document doc = DocumentHelper.createDocument();//1.创建一个文档
		Element rootElem = doc.addElement("Students");//2.创建标签
		Element studentElem1 = rootElem.addElement("Student");//创建子标签
		studentElem1.addAttribute("id", "1"); //3.添加属性
		studentElem1.addElement("name").setText("张三");
		studentElem1.addElement("gender").setText("男");
		studentElem1.addElement("grade").setText("计算机一班");
		studentElem1.addElement("address").setText("广州天河");
		
		Element studentElem2 = rootElem.addElement("Student");//创建子标签
		studentElem2.addAttribute("id", "2"); //3.添加属性
		studentElem2.addElement("name").setText("李四");
		studentElem2.addElement("gender").setText("女");
		studentElem2.addElement("grade").setText("计算机二班");
		studentElem2.addElement("address").setText("广州越秀");
		
		//二、修改XML文档:修改id为2的姓名为张丽,代码见test1
		
		//三、输出XML文件
		FileOutputStream out = new FileOutputStream("f:/Student.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("utf-8");
		XMLWriter writer = new XMLWriter(out,format);
		writer.write(doc);
		writer.close();
	}
	
	//二、修改XML文档:修改id为2的姓名为张丽,代码见test1
	@Test
	public void test1() throws Exception {
		Document doc1 = new SAXReader().read(new File("f:/Student.xml"));
		Iterator<Element> it = doc1.getRootElement().elementIterator("Student");
		while(it.hasNext()){
			Element stuElem = it.next();
			System.out.println(stuElem.getName());
			if(stuElem.attributeValue("id").equals("2")) {
				stuElem.element("name").setText("张丽");
				break;
			}
		}
		
		FileOutputStream out = new FileOutputStream("f:/Student.xml");
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("utf-8");
		XMLWriter writer = new XMLWriter(out,format);
		writer.write(doc1);
		writer.close();
	}
}