使用dom4j: http://www.dom4j.org/ 参考文章: http://www.ibm.com/developerworks/cn/xml/x-dom4j.html 下载jar包: dom4j-1.6.1.jar dom4j-full.jar 注意:如果不加dom4j-full.jar这个包,有可能报错 接口: package xmlService; import java.util.Hashtable; import xmlBean.User; public interface UserService { public Hashtable<?, ?> getAllUser(); public User getUserById(String id); public boolean addUser(User user); public boolean updateUser(User user); public boolean deleteUser(User user); } 实现类: package xmlAction; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import xmlBean.User; import xmlService.UserService; public class UserAction implements UserService { Document document; String xmlFilePos; public UserAction(String xmlFilePos) { this.xmlFilePos = xmlFilePos; if ((new File(this.xmlFilePos)).exists() == false) { document = DocumentHelper.createDocument(); Element usersElm = document.addElement("users"); Element userElm = usersElm.addElement("user"); userElm.addAttribute("id", ""); userElm.addElement("name"); userElm.addElement("age"); XMLWriter writer; try { writer = new XMLWriter(new FileWriter(this.xmlFilePos)); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); } } else { SAXReader reader = new SAXReader(); try { document = reader.read(new File(this.xmlFilePos)); } catch (DocumentException e) { e.printStackTrace(); } } } public boolean addUser(User user) { String s = ""; Element root = document.getRootElement(); List<?> nodes = root.elements("user"); for (Iterator<?> it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); if (elm.attributeValue("id").equals("")) { s = user.getId(); elm.setAttributeValue("id", s); // elm.element("id").attribute(s); elm.element("name").setText(user.getName()); elm.element("age").setText(String.valueOf(user.getAge())); break; } } if (s.equals("") && s.length() == 0) { Element rootElm = document.getRootElement(); Element userElm = rootElm.addElement("user"); userElm.addAttribute("id", user.getId()); Element nameElm = userElm.addElement("name"); nameElm.setText(user.getName()); Element ageElm = userElm.addElement("age"); ageElm.setText(String.valueOf(user.getAge())); } try { XMLWriter writer = new XMLWriter(new FileWriter(this.xmlFilePos)); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); return false; } return true; } public boolean deleteUser(User user) { Element root = document.getRootElement(); List<?> nodes = root.elements("user"); String s = ""; for (Iterator<?> it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); if (elm.element("id").equals(user.getId())) { s = user.getId(); root.remove(elm); } } if (s.equals("") || s.length() == 0) { return false; } return true; } public Hashtable<String, Element> getAllUser() { Hashtable<String, Element> ht = null; List<?> nodes = document.getRootElement().elements("user"); for (Iterator<?> it = nodes.iterator(); it.hasNext();) { Element element = (Element) it.next(); User user = new User(); user.setId(element.elementText("id")); user.setName(element.elementText("name")); user.setAge(Integer.parseInt(element.elementText("age"))); ht.put(element.elementText("id"), element); System.out.println(element.getText()); } return ht; } public User getUserById(String id) { Element root = document.getRootElement(); List<?> nodes = root.elements("user"); for (Iterator<?> it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); if (elm.element("id").equals(id)) { User user = new User(); user.setId(id); user.setName(elm.elementText("name")); user.setAge(Integer.parseInt(elm.elementText("age"))); return user; } } return null; } public boolean updateUser(User user) { Element root = document.getRootElement(); List<?> nodes = root.elements("user"); String s = ""; for (Iterator<?> it = nodes.iterator(); it.hasNext();) { Element elm = (Element) it.next(); if (elm.element("id").equals(user.getId())) { s = user.getId(); elm.element("name").setText(user.getName()); elm.element("age").setText(String.valueOf(user.getAge())); break; } } if (s.equals("") || s.length() == 0) { return false; } return true; } }