zoukankan      html  css  js  c++  java
  • JAVA对XML文件的操作( dom4j jaxen)

    XML文件读取和写入

    package com.example.mvcdemo;
    
    import org.dom4j.*;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.List;
    
    public class UserImplXML {
        private String path = "user.xml";
    
    //  读取xml文件和解析
        public User find(String username, String password){
    //        InputStream inputStream = UserImplXML.class.getClassLoader().getResourceAsStream("user.xml");
    
            SAXReader saxReader = new SAXReader();
    
    
            try {
                Document document = saxReader.read(path);
    
    //            Element element = (Element) document.getRootElement();
                String xpath = "/users/user[@username='zhangxing' and @password='1234']";
                Element element = (Element) document.selectSingleNode(xpath);
                if (element==null){
                    System.out.println("element is null");
                    return null;
                }
                User user = new User();
                user.setId(Integer.parseInt(element.attributeValue("id")));
                user.setUsername(element.attributeValue("username"));
                user.setPassword(element.attributeValue("password"));
                user.setEmail(element.attributeValue("email"));
    
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                Date birthday = simpleDateFormat.parse(element.attributeValue("birthday"));
                user.setBirthday(birthday);
                return user;
    
            } catch (DocumentException e) {
                e.printStackTrace();
                throw new RuntimeException("初始化出错");
            }catch (ParseException e){
                e.printStackTrace();
                throw new RuntimeException("查询时出错");
            }
        }
    
    //  写入xml文件
        public void register(User user) throws DocumentException, IOException {
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(path);
    
            Element newElement = DocumentHelper.createElement("user");
            newElement.addAttribute("id", String.valueOf(user.getId()));
            newElement.addAttribute("username", user.getUsername());
            newElement.addAttribute("password", user.getPassword());
            newElement.addAttribute("email", user.getEmail());
    
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String birthday = simpleDateFormat.format(user.getBirthday());
            newElement.addAttribute("birthday", birthday);
            document.getRootElement().add(newElement);
    
            OutputFormat outputFormat = OutputFormat.createPrettyPrint();
            outputFormat.setEncoding("UTF-8");
            XMLWriter xmlWriter = new XMLWriter(new FileWriter(path), outputFormat);
            xmlWriter.write(document);
            xmlWriter.close();
        }
    }
    
    

    Junit测试代码

    package com.example.mvcdemo;
    
    import org.dom4j.DocumentException;
    import org.junit.jupiter.api.Test;
    
    import java.io.IOException;
    import java.util.Date;
    
    import static org.junit.jupiter.api.Assertions.*;
    
    class UserImplXMLTest {
        private String username = "zhongfucheng";
        private String password = "123";
        @Test
        void find() {
            UserImplXML userImplXML = new UserImplXML();
            User user = userImplXML.find(username, password);
            System.out.println(user);
    
            System.out.println("birthday:"+user.getBirthday());
            System.out.println("email:"+user.getEmail());
            System.out.println("id:"+user.getId());
            System.out.println("username:"+user.getUsername());
            System.out.println("password:"+user.getPassword());
        }
    
        @Test
        void register() throws IOException, DocumentException {
            UserImplXML userImplXML = new UserImplXML();
            User user = new User(3, "zx3", "122", "zx@163.com", new Date());
            userImplXML.register(user);
        }
    }
    
  • 相关阅读:
    laravel执行migrate出现1071 字符串类型过长 异常
    Laravel关闭CSRF功能的两种方法
    webstome10破解及汉化
    spring-retry简单demo(附完整代码)
    git提交报错SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
    tomcat8的session共享实现方案
    idea下载安装指南
    《Maven实战》(许晓斌)导读(读书笔记&第二次读后感)
    spring cloud config搭建说明例子(四)-补充配置文件
    spring cloud config搭建说明例子(三)-添加actuator
  • 原文地址:https://www.cnblogs.com/zxingwork/p/14444550.html
Copyright © 2011-2022 走看看