利用dom4J 和jaxen  對student.xml 文件進行增刪查小實例(附代碼)

 利用dom4J 和jaxen  對student.xml 文件進行增刪查

需要dom4j 和jaxen 兩個包

小例子所有文件:

 

 對student.xml 進行增刪查

最初

調用testAdd方法後 

 調用testGet方法後

調用testDelete方法後

相關代碼:

StudentService.java

package cn.test.service;

import java.io.FileOutputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import cn.test.vo.Student;

public class StudentService {

	//增加student信息
	public static void addStu(Student student) throws Exception{
        //獲取根節點
		SAXReader saxReader = new SAXReader();	
		Document document = saxReader.read("src/student.xml");
		Element root =document.getRootElement();
		//在根節點中添加子節點stu  在stu節點下 添加子節點 id name age
		Element  stu = root.addElement("stu");
		Element id=stu.addElement("id");
		Element name=stu.addElement("name");
		Element age=stu.addElement("age");
		//在給節點id name age  賦值
		id.setText(student.getId());
		name.setText(student.getName());
		age.setText(student.getAge());
	
		//此時 數據保存在內存中  這時 我們需要內存中的對象 回寫到xml中
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/student.xml"), format);
		xmlWriter.write(document);
		xmlWriter.close();
		
	}
	
	//刪除student信息
	public static void deleteStu(String id) throws Exception{
		//獲取文件 將其解析 
		SAXReader saxReader = new SAXReader();	
		Document document = saxReader.read("src/student.xml");
		//在文件中挑選名爲id的節點放入list中
		List<Node> list =document.selectNodes("//id");
		//遍歷list節點元素  先找到id 的父節點   stu  再stu從他的父親節點中刪除
		for(Node node : list){
			String idv =node.getText();
			if(idv.equals(id)){
				Element stu =node.getParent();
				Element student=stu.getParent();
				student.remove(stu);
			}
		}
		//此時 數據保存在內存中而本地xml沒有同步    這時 我們需要內存中的對象 回寫到xml
		OutputFormat format = OutputFormat.createPrettyPrint();
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/student.xml"), format);
		xmlWriter.write(document);
		xmlWriter.close();
	}
	
	//查詢
	public static void getStu() throws Exception{
		//獲取文件 將其解析 
		SAXReader saxReader = new SAXReader();	
		Document document = saxReader.read("src/student.xml");
		//在文件中挑選名爲id的節點放入list中
		List<Node> list =document.selectNodes("//id");
		//遍歷list節點元素  先找到id 的父節點   stu   在將他的子節點中的值取出  並打印
        for(Node node : list){
            Element stu = node.getParent();
            String name=stu.element("name").getText();
            String age =stu.element("age").getText();
            String id=stu.element("id").getText();
            System.out.println(id+"  "+name+"  "+age);         
        }
	
	
	}

}

 TestStu.java

package cn.test.test;

import cn.test.service.StudentService;
import cn.test.vo.Student;

public class TestStu {
	
	public static  void main(String[] args) throws Exception{
		//testAdd();
		//testDelete();
		//testGet();
	}
	
	public static void testAdd() throws Exception{
		Student stu  =new Student();
		stu.setId("101");
		stu.setAge("20");
		stu.setName("zhangsan");
		StudentService.addStu(stu);
	}
	
	public static void testDelete() throws Exception{
	
		StudentService.deleteStu("101");
	}

	
	public static void testGet() throws Exception{
		StudentService.getStu();;
	}
}

student.java

此類爲實體類     student  類 包含三個屬性   id   name   age   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章