xml解析案例:一个简单的学生管理系统

1.创建一个xml文件,写一些学生信息



 
   
    001  
    张三  
    18  
    北京 
    
   
    002  
    李四  
    19  
    太原 
    
   
    003  
    王五  
    19  
    杭州 
   

2.创建dom4j的工具类

package cn.yfy.util;

import java.io.FileOutputStream;

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

public class Dom4jUtil {
	public static Document getDocument(String path) throws Exception {
		// 创建解析器
		SAXReader sr = new SAXReader();
		// 得到document
		Document doc = sr.read(path);
		return doc;
	}
	//回写xml
	public static void ReWrite(String path, Document doc) throws Exception {
		XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(path),
				new OutputFormat().createPrettyPrint());
		xmlWriter.write(doc);
		xmlWriter.close();
	}
}

3.创建操作该xml的类

package cn.yfy.util;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;

public class StudentManger {
	private String path;

	public StudentManger() {
		super();
	}

	public StudentManger(String path) {
		super();
		this.path = path;
	}

	public void SeekById(String id) throws Exception {
		// 获得person根节点
		Document doc = Dom4jUtil.getDocument(path);
		Element root = doc.getRootElement();
		// 得到所有student节点
		List list = root.elements("student");
		// 遍历student节点
		for (Element element : list) {
			// 获取所选id值,并输出其姓名年龄和所在地
			if (element.element("id").getText().equals(id)) {
				System.out.println("姓名:" + element.element("name").getText());
				System.out.println("年龄:" + element.element("age").getText());
				System.out.println("所在地:" + element.element("city").getText());
				break;
			}
		}
	}

	public void addStudent(String name, String id, String age, String city)
			throws Exception {
		// 获得person根节点
		Document doc = Dom4jUtil.getDocument(path);
		Element root = doc.getRootElement();
		// 根节点上添加student标签
		Element stu = root.addElement("student");
		// 给student标签里面添加各种标签并赋值
		Element id1 = stu.addElement("id");
		id1.setText(id);
		Element name1 = stu.addElement("name");
		name1.setText(name);
		Element age1 = stu.addElement("age");
		age1.setText(age);
		Element city1 = stu.addElement("city");
		city1.setText(city);
		// 回写xml
		Dom4jUtil.ReWrite(path, doc);
	}

	public boolean removeById(String id) throws Exception {
		// 定义一个变量判断是否删除成功,返回false则代表没有此id
		boolean boo = false;
		// 获得person根节点
		Document doc = Dom4jUtil.getDocument(path);
		Element root = doc.getRootElement();
		// 得到所有student节点
		List list = root.elements("student");
		// 遍历student节点
		for (Element element : list) {
			if (element.element("id").getText().equals(id)) {
				boo = true;
				element.getParent().remove(element);
				break;
			}
		}
		Dom4jUtil.ReWrite(path, doc);
		return boo;
	}
}

4.模拟实现学生管理系统客户端

package cn.yfy.server;

import cn.yfy.util.StudentManger;

public class Server {

	/**
	 * 学生管理系统
	 */
	public static void main(String[] args) throws Exception {
		String path = "src/students.xml";
		//创建学生管理类
		StudentManger sm = new StudentManger(path);
		//通过id获取学生信息
		sm.SeekById("001");
		//增加学生
		sm.addStudent("旺财", "007", "8", "火星");
		//删除指定id的学生
		System.out.println(sm.removeById("009"));
	}
}

你可能感兴趣的:(java-web学习)