<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>