XML的增删改查

来源:互联网 发布:华为手机有信号没网络 编辑:程序博客网 时间:2024/05/21 11:32
<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>



0 0
原创粉丝点击