<h3 style="padding: 0px; margin: 0px 0px 2px; font-size: 10pt; color: rgb(0, 102, 0); font-family: 微软雅黑, Verdana, sans-serif, 宋体;"> XMLUtil.java 文件</h3>
package XMLcrud;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XMLUtil {
private static String fileURL="/user.xml";
/**
* 获取XML中所有的用户信息
* @return
*/
public static List<User> getAllUser(){
Document document=getDocument();
Element rootElement=document.getRootElement();
List<Element> userElements=rootElement.elements();
List<User> users=new ArrayList<User>();
for (Element userElement : userElements) {
User user=new User();
user.setId(userElement.attributeValue("id"));
user.setName(userElement.element("name").getTextTrim());
user.setAge(userElement.element("age").getTextTrim());
users.add(user);
}
return users;
}
/**
* 向XML文件中添加一个user
* @param user
*/
public static void add(User user){
Document document=getDocument();
Element rootElement=document.getRootElement();
Element userElement=rootElement.addElement("user");
userElement.addAttribute("id",getMaxId()+1+"");
Element nameElement=userElement.addElement("name");
Element ageElement=userElement.addElement("age");
nameElement.setText(user.getName());
ageElement.setText(user.getAge());
write2XML(document);
}
/**
* 根据id删除user
* @param id
*/
public static void deleteById(String id){
Document document=getDocument();
Element rootElement=document.getRootElement();
List<Element> userElements=rootElement.elements("user");
for (Element userElement : userElements) {
if(userElement.attributeValue("id").equals(id)){
System.out.println("开始删除.....");
rootElement.remove(userElement);
System.out.println("删除结束.....");
}
}
write2XML(document);
}
/**
* 修改user信息
* @param user
*/
public static void update(User user){
Document document=getDocument();
Element rootElement=document.getRootElement();
List<Element> userElements=rootElement.elements();
for (Element userElement : userElements) {
if(userElement.attributeValue("id").equals(user.getId())){
List<Element> elements=userElement.elements();
userElement.element("name").setText(user.getName());
userElement.element("age").setText(user.getAge());
}
}
write2XML(document);
}
/**
* 获取根节点
* @return rootElement
*/
public static Document getDocument(){
try {
SAXReader saxReader=new SAXReader();
InputStream in=OperateXML.class.getResourceAsStream("/user.xml");
Document document=saxReader.read(in);
return document;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 把内容写到XML文件中
* @param document
*/
public static void write2XML(Document document){
try {
OutputFormat format=new OutputFormat(" ", true, "utf-8");
format.setTrimText(true);
XMLWriter writer = new XMLWriter(format);
writer.setOutputStream(new FileOutputStream("src"+fileURL));
writer.write(document);
writer.close();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获取xml文件中userId的最大值
* @return int
*/
public static int getMaxId(){
int maxId=0;
Document document=getDocument();
Element rootElement=document.getRootElement();
List<Element> userElements=rootElement.elements();
for (Element element : userElements) {
int id=Integer.valueOf(element.attributeValue("id"));
if(maxId<id){
maxId=id;
}
}
return maxId;
}
}
User.java文件
package XMLcrud;
public class User {
private String id;
private String name;
private String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
user.xml文件
<?xml version="1.0" encoding="utf-8"?>
<users>
<user id="1">
<name>张三</name>
<age>18</age>
</user>
<user id="2">
<name>李四</name>
<age>10</age>
</user>
</users>