基于Xpath的简单的学生信息管理系统

基于Xpath所做的简单的学生信息管理系统,没有设计现实的窗体部分,较为交单粗暴。
首页在编写代码之前,首先需要引入两个myEclipse的插件包,加入到项目中,具体方法是,新建lib文件夹在java项目中,将压缩包复制粘贴进入lib文件夹,在创建到项目中去即可,最终结果如下图所示:
这里写图片描述
接下来开始java代码的编写:
1、首先在src下编写XML文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<student> 
  <stu> 
    <id>002</id>  
    <name>李四</name>  
    <age>20</age> 
  </stu>  
  <stu> 
    <id>003</id>  
    <name>王五</name>  
    <age>23</age> 
  </stu> 
</student>

写完后,接下来编写所需要的具体操作函数的代码StudentOper.java,具体代码如下:

package studentOper;

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 studentSource.Student;

public class StudentOper {

    //添加操作(003,王五,23)

    public static void addstu(Student student) throws Exception{

        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        Element root = doc.getRootElement();

        Element stu = root.addElement("stu");

        Element id = stu.addElement("id");
        Element name = stu.addElement("name");
        Element age = stu.addElement("age");

        id.setText(student.getId());
        name.setText(student.getName());
        age.setText(student.getAge());

        OutputFormat format = OutputFormat.createPrettyPrint();

        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/studentsrc.xml"), format);

        xmlWriter.write(doc);

        xmlWriter.close();


    }

    //删除id=001的学生
    public static void deleteStu(String id ) throws Exception
    {
        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        List<Node> list = doc.selectNodes("//id");

        for (Node node : list) {
            String nodeValue = node.getText();

            if (nodeValue.equals(id)) {
                Element stu = node.getParent();
                Element student = stu.getParent();
                student.remove(stu);


            }
        }
        OutputFormat format = OutputFormat.createPrettyPrint();

        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/studentsrc.xml"), format);

        xmlWriter.write(doc);

        xmlWriter.close();
    }


    //查找id=002的学生信息
    public static Student searchstu(String id) throws Exception
    {
        Student student = new Student();

        SAXReader saxReader = new SAXReader();

        Document doc = saxReader.read("src/studentsrc.xml");

        List<Node> list = doc.selectNodes("//id");

        for (Node node : list) {
            String nodeValue = node.getText();

            if (nodeValue.equals(id)) {

                Element stu = node.getParent();

                String nameValue = stu.element("name").getText();
                String ageValue = stu.element("age").getText();

                student.setId(id);
                student.setName(nameValue);
                student.setAge(ageValue);

            }

        }
        return student;

    }

}

而我们在创建这个代码是,发现因为student的属性参数较多,于是在创建一个student类来存储这些属性,代码如下:

package studentSource;

public class Student {
    private String id;
    private String name;
    private String age;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    }


}

接下来,编写studentmain代码。调用这些功能函数即可:

package student;

import studentOper.StudentOper;
import studentSource.Student;

public class StudentMain {

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        //添加操作(003,王五,23)
        //addStudent();
        //删除id=001的学生
        //deleteStu();
        //查找id=002的学生信息
        searchStu();

    }

    private static void searchStu() throws Exception {
        // TODO Auto-generated method stub
        Student student = StudentOper.searchstu("002");
        System.out.println(student.toString());

    }

    private static void deleteStu() throws Exception {
        // TODO Auto-generated method stub
        StudentOper.deleteStu("001");
    }

    private static void addStudent() throws Exception {
        // TODO Auto-generated method stub
        Student stu = new Student();
        stu.setId("003");
        stu.setName("王五");
        stu.setAge("23");
        StudentOper.addstu(stu);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值