xml-dom解析-简单的学生信息管理系统

public static void write2Xml(Document document) throws TransformerException{

//1.获得TransformerFactory的实例对象

TransformerFactory factory = TransformerFactory.newInstance();

//2.获得Transformer的实例对象

Transformer tf = factory.newTransformer();

tf.transform(new DOMSource(document), new StreamResult(file));

}

}

封装数据的Student类

public class Student {

private String examid;

private String idcard;

private String name;

private String location;

private double grade;

public String getExamid() {

return examid;

}

public void setExamid(String examid) {

this.examid = examid;

}

public String getIdcard() {

return idcard;

}

public void setIdcard(String idcard) {

this.idcard = idcard;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getLocation() {

return location;

}

public void setLocation(String location) {

this.location = location;

}

public double getGrade() {

return grade;

}

public void setGrade(double grade) {

this.grade = grade;

}

@Override

public String toString() {

return “学生姓名:”+name+“, 学生住址:”+location+“, 准考证号:”+examid+“, 身份证号:”+idcard+“, 成绩:”+grade;

}

}

俗称javabean的StudentDao类

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class StudentDao {

private static XmlUtils utils = new XmlUtils();

public static void add(Student student){

try {

Document document = utils.getDocument();  //获得要操作的xml文档的document对象

//创建各节点

Element student_node = document.createElement(“student”);

Element name_node = document.createElement(“name”);

Element location_node = document.createElement(“location”);

Element grade_node = document.createElement(“grade”);

//给各节点添加属性和值

student_node.setAttribute(“examid”, student.getExamid());

student_node.setAttribute(“idcard”, student.getIdcard());

name_node.setTextContent(student.getName());

location_node.setTextContent(student.getLocation());

grade_node.setTextContent(student.getGrade()+“”);  //

//将各节点添加到相应位置

student_node.appendChild(name_node);

student_node.appendChild(location_node);

student_node.appendChild(grade_node);

//student_node.getParentNode().appendChild(student_node);

document.getElementsByTagName(“exam”).item(0).appendChild(student_node);

//将内存中的document对象重新写入xml文档

utils.write2Xml(document);

//System.out.println(“添加学生信息成功”);

} catch (Exception e) {

throw new RuntimeException(e);

}

}

public static boolean delete(String name){

try {

Document document = utils.getDocument(); //获得要操作的xml文档的document对象

NodeList list = document.getElementsByTagName(“name”);

for(int i=0; list!=null && i<list.getLength(); i++){

Node node = list.item(i);

if(node.getTextContent().equals(name)){

node.getParentNode().getParentNode().removeChild(node.getParentNode());

utils.write2Xml(document);

return true;

}

}

return false;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

public static Student find(String examid){

try {

Student s = new Student();

Document document = utils.getDocument();

NodeList list = document.getElementsByTagName(“student”);

for(int i=0; list!=null && i<list.getLength(); i++){

Element node = (Element) list.item(i);

if(node.getAttribute(“examid”).equals(examid)){

s.setExamid(examid);

s.setIdcard(node.getAttribute(“idcard”));

s.setGrade(Double.parseDouble(node.getElementsByTagName(“grade”).item(0).getTextContent()));

s.setLocation(node.getElementsByTagName(“location”).item(0).getTextContent());

s.setName(node.getElementsByTagName(“name”).item(0).getTextContent());

return s;

}

}

} catch (Exception e) {

throw new RuntimeException(e);

}

return null;

}

}

封装主函数的Main类

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class Main {

private static StudentDao dao = new StudentDao();

public static void main(String[] args) {

System.out.println(“操作类型: 添加学生信息:(a) 删除学生信息:(b) 查询学生信息:©”);

System.out.print("请选择操作类型: ");

Operation();

}

private static void Operation() {

try {

Student s = new Student();

//创建读取键盘的BufferedReader对象,并用转换流InputStreamReader将字节流System.in转换为字符流

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String type = br.readLine();

if(“a”.equals(type)){

System.out.print(“请输入学生姓名:”);

String name = br.readLine();

System.out.print(“请输入学生准考证号:”);

String examid = br.readLine();

System.out.print(“请输入学生身份证号:”);

String idcard = br.readLine();

System.out.print(“请输入学生住址:”);

String location = br.readLine();

System.out.print(“请输入学生成绩:”);

String grade = br.readLine();

s.setExamid(examid);

s.setGrade(Double.parseDouble(grade));

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
片转存中…(img-Gckx5AbB-1715832610264)]

[外链图片转存中…(img-7RM1dYS8-1715832610265)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值