加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML的增删改查

发布时间:2020-12-16 09:26:37 所属栏目:百科 来源:网络整理
导读: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.u
<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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读