package com.Server;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import com.entity.Student;
import com.entity.Teacher;
import com.util.Datas;
import com.util.SysConstants;
public class ServerService {
/**
* 教师登录
* @param loginId 用户名
* @param loginPwd 密码
* @return
*/
public Datas login(String loginId, String loginPwd) {
Datas datas = new Datas();
// 得到Teacher.xml的DOM树
Document doc = getDocument("src/Teacher.xml");
NodeList teaList = doc.getElementsByTagName("Teacher");
for (int i = 0; i < teaList.getLength(); i++) {
Element elTea = (Element) teaList.item(i);
String name = elTea.getElementsByTagName("loginId").item(0)
.getTextContent();
String pwd = elTea.getElementsByTagName("loginPwd").item(0)
.getTextContent();
if (loginId.equals(name) && loginPwd.equals(pwd)) {
Teacher teacher = new Teacher();
teacher.setLoginId(loginId);
teacher.setLoginPwd(loginPwd);
datas.setTeacher(teacher);
datas.setFlag(SysConstants.SUCCESS);
return datas;
}
}
datas.setFlag(SysConstants.ERROR);
return datas;
}
/**
* 得到DOM树
* @param path 需要解析的XML文档
* @return
*/
private Document getDocument(String path) {
try {
// 获得DOM解析器工厂实例
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
// 得到DOM解析器
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析xml文件得到DOM树
Document doc = builder.parse(path);
return doc;
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 查找所有的学员信息
* @return
*/
public Datas findAll() {
Datas datas = new Datas();
List<Student> list = new ArrayList<Student>();
// 得到Student.xml的DOM树
Document doc = getDocument("src/Student.xml");
NodeList stuList = doc.getElementsByTagName("student");
for (int i = 0; i < stuList.getLength(); i++) {
Element elStu = (Element) stuList.item(i);
String stuid = elStu.getElementsByTagName("stuid").item(0)
.getTextContent();
String stuName = elStu.getElementsByTagName("stuName").item(0)
.getTextContent();
String age = elStu.getElementsByTagName("Age").item(0)
.getTextContent();
String gender = elStu.getElementsByTagName("Gender").item(0)
.getTextContent();
String teaid = elStu.getElementsByTagName("teaid").item(0)
.getTextContent();
String comment = elStu.getElementsByTagName("comment").item(0)
.getTextContent();
Student student = new Student();
student.setStuId(Integer.parseInt(stuid));
student.setStuName(stuName);
student.setAge(Integer.parseInt(age));
student.setGender(gender);
student.setTeaId(Integer.parseInt(teaid));
student.setComment(comment);
list.add(student);
}
if (list.size() > 0) {
datas.setStuList(list);
datas.setFlag(SysConstants.SUCCESS);
} else {
datas.setFlag(SysConstants.ERROR);
}
return datas;
}
/**
* 根据教师编号 查找 教师名称
* @param teaid 教师编号
* @return
*/
public Datas findTeaName(int teaid) {
Datas datas = new Datas();
// 得到Teacher.xml的DOM树
Document doc = getDocument("src/Teacher.xml");
NodeList teaList = doc.getElementsByTagName("Teacher");
for (int i = 0; i < teaList.getLength(); i++) {
Element elTea = (Element) teaList.item(i);
String id = elTea.getElementsByTagName("teaid").item(0)
.getTextContent();
if (teaid == Integer.parseInt(id)) {
Teacher teacher = new Teacher();
String teaName = elTea.getElementsByTagName("teaName").item(0)
.getTextContent();
teacher.setTeaName(teaName);
datas.setTeacher(teacher);
datas.setFlag(SysConstants.SUCCESS);
return datas;
}
}
datas.setFlag(SysConstants.ERROR);
return datas;
}
/**
* 删除学员信息方法
* @param id 学员ID
*/
public Datas delStudent(int stuid){
Datas datas = new Datas();
Document doc=getDocument("src/Student.xml");
Node students=doc.getElementsByTagName("Students").item(0);
NodeList list = doc.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element) list.item(i);
String id = element.getElementsByTagName("stuid").item(0).getTextContent();
if(stuid == Integer.parseInt(id)){
students.removeChild(element);
writeXml(doc);
datas.setFlag(SysConstants.SUCCESS);
return datas;
}
}
datas.setFlag(SysConstants.ERROR);
return datas;
}
/**
* 修改学员信息方法
* @param student 学员对象
*/
public Datas modifyStudent(int stuid,String comment){
Datas datas = new Datas();
Document doc=getDocument("src/Student.xml");
NodeList list = doc.getElementsByTagName("student");
for (int i = 0; i < list.getLength(); i++) {
Element element = (Element) list.item(i);
String id = element.getElementsByTagName("stuid").item(0).getTextContent();
if(stuid == Integer.parseInt(id)){
//element.setAttribute("comment", comment);
Element commentElement = (Element) element.getElementsByTagName("comment").item(0);
commentElement.setTextContent(comment);
writeXml(doc);
datas.setFlag(SysConstants.SUCCESS);
return datas;
}
}
datas.setFlag(SysConstants.ERROR);
return datas;
}
/**
* 修改后的内容写入XML
* @param docs
*/
public void writeXml(Document doc)
{
try
{
TransformerFactory factory=TransformerFactory.newInstance();
Transformer transformer=factory.newTransformer();
DOMSource domSoure=new DOMSource(doc);
//设置编码类型
transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
StreamResult result=new StreamResult(new File("src/Student.xml"));
transformer.transform(domSoure, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
学生信息管理系统(Socket编程 XML读写操作)
4星 · 超过85%的资源 需积分: 13 23 浏览量
2012-11-21
15:35:18
上传
评论 2
收藏 27KB ZIP 举报
zhangyanzzxxt
- 粉丝: 0
- 资源: 7
最新资源
- AIS2024 valid
- 最入门的爬虫代码 python.docx
- 爬虫零基础入门-爬取天气预报.pdf
- 最通俗易懂的 MongoDB 非结构化文档存储数据库教程.zip
- 以mongodb为数据库的订单物流小项目.zip
- 腾讯云-mongodb数据库, 项目部署.zip
- 腾讯 APIJSON 的 MongoDB 数据库插件.zip
- 理解非关系型数据库和关系型数据库的区别.zip
- 操作简单的Mongodb网页web管理工具,基于Spring Boot2.0支持mongodb集群.zip
- tms-mongodb-web,提供访问mongodb数据的REST API和可灵活扩展的mongodb web 客户端.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈