使用dom4j实现读取和写入xml文件

来源:互联网 发布:单片机电子时钟原理图 编辑:程序博客网 时间:2024/05/29 13:14

在使用dom4j时,需要导入dong4j的jar包以及依赖包。
分别为:dom4j-1.6.1.jar与jaxen-1.1.6.jar
以下为相关代码
需要创建User类javabean对象
对象含有属性password与username

    package cn.yellowimg.dao;    import java.io.FileOutputStream;    import java.io.OutputStreamWriter;    import org.dom4j.Document;    import org.dom4j.DocumentException;    import org.dom4j.Element;    import org.dom4j.io.OutputFormat;    import org.dom4j.io.SAXReader;    import org.dom4j.io.XMLWriter;    import cn.yellowimg.domain.User;public class UserDao {private String pathString="D:/users.xml";//依赖数据文件/* *  * 按用户名查找 */public User findByUsername(String username){    /*     * 得到Document     * xpath查询     * 效验查询结果是否null 如果为null 返回null     * 如果不会null,则把Element封装到User对象中     */    //创建解析器    SAXReader reader=new SAXReader();    try     {        Document doc=reader.read(pathString);        /*         * 通过xpath查询得到element         * 根节点为user         * 加入对应的username存在         * 则将xml文档中username与password属性写到User对象中         */        Element element=(Element)doc.selectSingleNode("//user[@username='"+username+"']");        if(element==null) return null;        User user=new User();        user.setUsername(element.attributeValue("username"));        user.setPassword(element.attributeValue("password"));        return user;    }     catch (DocumentException e)     {        throw new RuntimeException(e);    }}/* *  * 添加用户 */public void add(User user){    /*     * 得到Document     * 通过Document获得root元素     * 使用user,转换成Element对象     * 把element添加到root元素中     * 保存到Document中     */    SAXReader reader=new SAXReader();    try     {        Document document=reader.read(pathString);        //得到根元素        Element root=document.getRootElement();        //通过根元素创建新元素        Element userElement=root.addElement("user");        //为userElement设置属性        userElement.addAttribute("username", user.getUsername());        userElement.addAttribute("password", user.getPassword());        /*          * 保存文档         */        //缩进使用/t 使用换行 格式化器        OutputFormat outputFormat=new OutputFormat("\t",true);        //清空原有换行缩进        outputFormat.setTrimText(true);        //创建XmlWriter        XMLWriter xmlWriter;        try        {            xmlWriter=new XMLWriter(                    new OutputStreamWriter(new FileOutputStream(pathString)                            ,"utf-8"), outputFormat);            xmlWriter.write(document);            xmlWriter.close();        }        catch(Exception e)        {            throw new RuntimeException(e);        }    }     catch (DocumentException e)     {        throw new RuntimeException(e);    }}}

对应的xml文档格式为

<users>    <user username="" password=""/></users>
原创粉丝点击