国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

將xml文件作為一個(gè)小的數(shù)據(jù)庫,進(jìn)行學(xué)生的增刪改查的簡(jiǎn)單實(shí)例

2024-09-01 08:27:54
字體:
供稿:網(wǎng)友

1.xml文件:

<?xml version="1.0" encoding="UTF-8"?><Students> <student id="2">  <name>ttt</name>  <age>44</age> </student> <student id="3">  <name>linda2</name>  <age>22</age> </student> <student id="4">  <name>linda3</name>  <age>23</age> </student> <student id="5">  <name>jack</name>  <age>2</age> </student> <student id="1">   <name>yyh1</name>   <age>22</age> </student></Students>

2.Java代碼

import java.io.File;import java.io.IOException;import java.util.Scanner;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.TransformerFactoryConfigurationError;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.NodeList;import org.w3c.dom.Text;import org.xml.sax.SAXException;//在學(xué)生管理系統(tǒng)里面,學(xué)生的學(xué)號(hào)是唯一的,姓名有可能重復(fù)public class StudentManager {  public static void main(String[] args) {    try {      Document doc = Domutils.getDoc(new File("xml文件的相對(duì)路徑"));      Scanner input = new Scanner(System.in);      System.out.println("歡迎來到學(xué)生管理系統(tǒng)/n/n/n請(qǐng)輸入你要進(jìn)行什么操作是:/n1.添加學(xué)生信息/n2.刪除學(xué)生信息/n3.修改學(xué)生信息/n(請(qǐng)輸入前邊的序號(hào))");      int num = input.nextInt();      if(num == 1) {        addStudent(doc);      }else if(num == 2) {        delStudent(doc);      }else if(num == 3) {        updStudent(doc);      }    } catch (SAXException e) {      e.printStackTrace();    } catch (IOException e) {      e.printStackTrace();    } catch (ParserConfigurationException e) {      e.printStackTrace();    }  }  //修改學(xué)生信息  private static void updStudent(Document doc) {    Element updStudent = null;    Scanner input = new Scanner(System.in);    System.out.println("請(qǐng)輸入你要修改的學(xué)生的學(xué)號(hào):");    String studentid = input.nextLine();    System.out.println("請(qǐng)輸入新學(xué)生的姓名:");    String newName = input.nextLine();    System.out.println("請(qǐng)輸入新學(xué)生的年齡:");    String newAge = input.nextLine();        //將每一個(gè)學(xué)生的列出來,for循環(huán)判斷你要修改信息的學(xué)生是哪一個(gè)    NodeList list = doc.getElementsByTagName("student");    for(int i = 0; i <list.getLength(); i++) {      if(studentid.equals(list.item(i).getAttributes().getNamedItem("id").getNodeValue())){        updStudent = (Element) doc.getElementsByTagName("student").item(i).getFirstChild().getParentNode();        //對(duì)學(xué)生的name屬性進(jìn)行賦新值        updStudent.getElementsByTagName("name").item(i).getFirstChild().setNodeValue(newName);        //對(duì)學(xué)生的age 屬性賦新值        updStudent.getElementsByTagName("age").item(i).getFirstChild().setNodeValue(newAge);              }else{        break;      }    }    //找出根元素,將修改后的元素持久化到文件    Element root = doc.getDocumentElement();    transform(root);    System.out.println(updStudent);  }  //刪除學(xué)生信息  private static void delStudent(Document doc) {    Scanner input = new Scanner(System.in);    //輸入你要?jiǎng)h除的學(xué)生的 學(xué)號(hào)    System.out.println("請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):");    String studentid = input.nextLine();    Element root = doc.getDocumentElement();        //將學(xué)生列成一個(gè)表,進(jìn)行遍歷,找對(duì)應(yīng)學(xué)號(hào)的學(xué)生進(jìn)行刪除    NodeList list = doc.getElementsByTagName("student");    for(int i = 0; i < list.getLength(); i++) {    if((studentid).equals(list.item(i).getAttributes().getNamedItem("id").getNodeValue())){      Element delStudent = (Element) doc.getElementsByTagName("student").item(i).getFirstChild().getParentNode();         root.removeChild(delStudent);        break;      }else {        System.out.println("沒有該學(xué)生");        break;      }    }    //持久化到文件    transform(root);  }    //添加學(xué)生信息  private static void addStudent(Document doc) {//    System.out.println(doc.getElementsByTagName("student").item(1).getAttributes().getNamedItem("id").getNodeValue());    Element root = doc.getDocumentElement();    //從控制臺(tái)輸入    Scanner input = new Scanner(System.in);    System.out.println("請(qǐng)輸入學(xué)生的序號(hào):id = ");         //將學(xué)生放到一個(gè)列表里面,看我們要添加的學(xué)生的學(xué)號(hào)里面是否已經(jīng)有了,如果有,需要將新加入的學(xué)生的學(xué)號(hào)改一下    NodeList list = doc.getElementsByTagName("student");    String studentid = input.nextLine();    for(int i = 0; i < list.getLength(); i++) {      if(studentid.equals(list.item(i).getAttributes().getNamedItem("id").getNodeValue())){        System.out.println("該序號(hào)學(xué)生表里面已經(jīng)存在,請(qǐng)重新輸入一個(gè)新的序號(hào):");         studentid = input.nextLine();      }else {        break;      }    }        System.out.println("請(qǐng)輸入要添加學(xué)生的姓名:name = ");    String name_value = input.nextLine();    System.out.println("請(qǐng)輸入要添加學(xué)生的年齡:age = ");    String age_value = input.nextLine();        //創(chuàng)建節(jié)點(diǎn)    Element student = doc.createElement("student");    Element name = doc.createElement("name");    Element age = doc.createElement("age");    Text namText = doc.createTextNode(name_value);    Text ageText = doc.createTextNode(age_value);    //關(guān)聯(lián)節(jié)點(diǎn)之間的關(guān)系    root.appendChild(student);    student.appendChild(name);    student.appendChild(age);    student.setAttribute("id", studentid);    name.appendChild(namText);    age.appendChild(ageText);    //持久化到文件    transform(root);      }  //持久化到文件的方法  private static void transform(Element root)      throws TransformerFactoryConfigurationError {    TransformerFactory factory = TransformerFactory.newInstance();    try {      Transformer tf = factory.newTransformer();      tf.transform(new DOMSource(root), new StreamResult(new File("src/com/briup/dom/student.xml")));    } catch (TransformerConfigurationException e) {      e.printStackTrace();    } catch (TransformerException e) {      e.printStackTrace();    }  }}            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广水市| 桐梓县| 双流县| 宝兴县| 峨眉山市| 金阳县| 杭州市| 兖州市| 嘉峪关市| 灵武市| 五华县| 长治市| 柯坪县| 门头沟区| 文成县| 固安县| 平罗县| 云南省| 寿宁县| 黄陵县| 松溪县| 合阳县| 怀来县| 哈巴河县| 阿瓦提县| 刚察县| 丹阳市| 剑阁县| 双柏县| 宜章县| 钟山县| 洛扎县| 洛隆县| 宜宾市| 茶陵县| 淮安市| 三门峡市| 凌海市| 六安市| 焦作市| 读书|