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);
}
}
}