package com.bjsxt.demo02;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;import java.util.*;public class CRUD { Test bo=new Test(); List<Test> li=new ArrayList<>(); //增加 void creat(String num,String name,String type,String price) throws DocumentException, IOException { //List<CRUD> list=new ArrayList<CRUD>(); SAXReader reader=new SAXReader();//根据xml文件创建DOM树 Document dom = reader.read("D:\\ASXT\\javaSE02\\xml\\book.xml");//解析指定的xml文件 Element rootElement = dom.getRootElement();//获得根节点元素对象 //获得books下的子节点 Element book = rootElement.addElement("book"); book.addAttribute("id", num); Element num1 = book.addElement("num"); num1.setText(num); Element name1 = book.addElement("name"); name1.setText(name); Element type1 = book.addElement("type"); type1.setText(type); Element price1 = book.addElement("price"); price1.setText(price); //4.将DOM树最新数据写入XML文件 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); Writer fw = new FileWriter("D:\\ASXT\\javaSE02\\xml\\book.xml"); XMLWriter xmlWriter = new XMLWriter(fw,format); xmlWriter.write(dom); xmlWriter.close(); } //查询 void retrieve() throws DocumentException { SAXReader reader=new SAXReader();//根据xml文件创建DOM树 Document dom = reader.read("D:\\ASXT\\javaSE02\\xml\\book.xml");//解析指定的xml文件 Element rootElement = dom.getRootElement();//获得根节点元素对象 //获得books下的子节点 List<Element> book = rootElement.elements("book"); for (Element e:book) { //获得student下边的子节点 List<Element> Nlist = e.elements(); //e:代表的就是每一个student标签下的子节点 for (Element o:Nlist) { System.out.println(o.getName()+"--"+o.getText()); if (o.getName().equals("num")){ bo.setNum(o.getText()); } if (o.getName().equals("name")){ bo.setName(o.getText()); } if (o.getName().equals("type")){ bo.setType(o.getText()); } if (o.getName().equals("price")){ bo.setPrice(o.getText()); } } li.add(new Test(bo.getNum(),bo.getName(),bo.getType(),bo.getPrice())); System.out.println("------------------------------------------------"); } for (Test a:li) {//遍历数组li System.out.println(a); } } //删除 void delete(String id) throws DocumentException, IOException { SAXReader reader=new SAXReader();//根据xml文件创建DOM树 Document dom = reader.read("D:\\ASXT\\javaSE02\\xml\\book.xml");//解析指定的xml文件 Element rootElement = dom.getRootElement();//获得根节点元素对象 //获得books下的子节点 List<Element> book = rootElement.elements("book"); for (Element o:book) { String id1 = o.attributeValue("id"); if (id1.equals(id)){ rootElement.remove(o); } } //4.将DOM树最新数据写入XML文件 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); Writer fw = new FileWriter("D:\\ASXT\\javaSE02\\xml\\book.xml"); XMLWriter xmlWriter = new XMLWriter(fw,format); xmlWriter.write(dom); xmlWriter.close(); }}
package com.bjsxt.demo02;
import org.dom4j.DocumentException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
private String id,num,name,type,price;
public Test() {
}
public Test(String num, String name, String type, String price) {
this.num = num;
this.name = name;
this.type = type;
this.price = price;
}
public String getId() {
id=num;
return id;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
@Override
public String toString() {
return "Test{" +
"num='" + num + '\'' +
", name='" + name + '\'' +
", type='" + type + '\'' +
", price='" + price + '\'' +
'}';
}
public static void main(String[] args) throws DocumentException, IOException {
System.out.println("*****欢迎使用图书馆系统******");
System.out.println(" 1.添加图书");
System.out.println(" 2.查询图书");
System.out.println(" 3.删除图书");
System.out.println("****************************");
//List<CRUD> list=new ArrayList<CRUD>();
String id,num,name,type,price;
Test book=new Test();
Scanner sc=new Scanner(System.in);
System.out.println("请输入操作编号");
int n=sc.nextInt();
CRUD crud = new CRUD();
switch (n){
case 1:
System.out.println("请输入图书编号");
book.setNum(sc.next());
System.out.println("请输入图书名称");
book.setName(sc.next());
System.out.println("请输入图书类型");
book.setType(sc.next());
System.out.println("请输入图书价格");
book.setPrice(sc.next());
crud.creat(book.getNum(),book.getName(),book.getType(),book.getPrice());
break;
case 2:
crud.retrieve();//查找
break;
case 3:
System.out.println("请输入需要删除的图书id");
crud.delete(sc.next());
break;
default:
System.out.println("编号输入错误,程序结束");
System.exit(0);
}
}
}