// 获取Documen对象
     public static Document getDocument(String path) throws Exception{
            // 解析器对象
           SAXReader reader = new SAXReader();
            // 解析
            return reader.read(path);
     }
     
     // 回写(XMLWriter)
     public static void writeXml(Document document,String path) throws Exception{
            // 格式
           OutputFormat format = OutputFormat.createPrettyPrint();
            // 设置编码
           format.setEncoding( "UTF-8");
            XMLWriter writer = new XMLWriter (new FileOutputStream(path), format);
            // 进行回写
           writer.write(document);
            // 关闭流
           writer.close();
     }
 
 
// 使用工具类,操作XML
           Document document = MyXmlUtil.getDocument(MyXmlUtil. PATH);
            // 解析XML
            // 获取根节点(查文档)
           Element root = document.getRootElement();
            // 校验用户名或者邮箱是否重名
           List<Element> uList = root.elements("user");
            // 判断
            if(uList != null || uList.size() > 0){
                 // XML中查询,和传入过来做对比,如果相同,重名了,返回
                 // 从XML中获取的
                 for (Element u : uList) {
                      // 获取username 节点的文本内容
                      // u.element("username ").getText();
                     String xmlName = u.elementText("username");
                      // 获取传入进来的User 的名称
                     String uName = user.getUsername();
                      // 重名了,返回1
                      if(xmlName.equals(uName)){
                            return MyXmlUtil.NAMEEXIST;
                     }
                     
                      // 获取xmlEamil
                     String xmlEmail = u.elementText( "email");
                     String uEamil = user.getEmail();
                      if(xmlEmail.equals(uEamil)){
                            return MyXmlUtil.EMAILEXIST;
                     }
                }
           }
           
           
            // 需要在XML添加节点
           Element uElement = root.addElement( "user");
            // 添加子节点
          uElement.addElement( "username").setText(user.getUsername());
          uElement.addElement( "password").setText(user.getPassword());
          uElement.addElement( "nickname").setText(user.getNickname());
          uElement.addElement( "email").setText(user.getEmail());
            // 回写
            MyXmlUtil.writeXml(document, MyXmlUtil .PATH );
            // 返回1 用户名重名了,返回是2邮箱重名,返回0注册成功
            return MyXmlUtil.SUCCESS;

dom4j操作xml对象的更多相关文章

  1. xml解析 使用dom4j操作xml

     使用dom4j操作xml 1 导入 dom4j,的jar包   2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...

  2. DOM4J操作XML(包括封装和解析)

    DOM4J操作XML(包括封装和解析) 先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: pa ...

  3. Strus2第一次课:dom4j操作xml

    先从底层的xml操作技术记录: 当我们新建一个项目,什么架包都没加入的时候,java提供了 org.w3c.dom给我们操作xml里面的元素 import org.w3c.dom.Document; ...

  4. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  5. dom4j操作xml文档

    java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...

  6. 使用Dom4j操作XML数据

    --------------siwuxie095                             dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 ...

  7. 使用dom4j操作XML

    DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点. DOM4J的使用 首先下载dom4j的JAR包,我用 ...

  8. dom4j操作xml

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件.是一个非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源工具.可以在这个 ...

  9. Rhythmk 一步一步学 JAVA (16) dom4j 操作XML

    1.项目文件结构图: 2.文件代码: doc.xml <?xml version="1.0" encoding="UTF-8"?> <Shop ...

随机推荐

  1. win7下vs2008编译出现C1859错误的处理办法

    昨天,电脑上安装的vs2008 sp1版本编译工程时候出了这样的错了:fatal error C1859: 'Debug\**.pch'.清理并重新编译会临时解决问题,但问题仍然会频发.后面上网找资料 ...

  2. Builder模式(建造者模式)

    在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成.那么,在实际的开发过程中,我们哪些地方适合用到Builder模式呢?其中使用Build ...

  3. JMS的常用方法

    import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; impor ...

  4. PLSQL_基础系列12_替换函数用法REPLACE / TRANSLATE / REGEXP_REPLACE

    20150806 Created By BaoXinjian

  5. BIP_Oracle Erp标准银行接口XML文件(案例)(待整理)

    2014-07-07 Created By BaoXinjian  

  6. vim 上下左右变成ABCD 解决办法

    一.缘由 一次发现VIM编辑文件,发现上下左右键变输入ABCD.猜测vimrc没设置好. 二.解决办法: ls -l /etc/ |grep vim,发现有两个结果vimrc.rpmnew,vimrc ...

  7. C#使用EmguCV实现视频读取和播放,及多个视频一起播放的问题

    大家知道WPF中多线程访问UI控件时会提示UI线程的数据不能直接被其他线程访问或者修改,该怎样来做呢? 分下面两种情况 1.WinForm程序 1)第一种方法,使用委托: private delega ...

  8. 读取缓存模拟----FIFO

    本例是模拟缓存的存储和读取. 存储:使用一个Map来存放,key是文件名,值为缓存对象 读取:返回相应的key对应的缓存.(如果缓存被修改,就重新加载缓存,再从缓存Map中读取相应缓存) 测试类:每2 ...

  9. js判断手机是的操作系统

    var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; retu ...

  10. ubuntu 命令行软件包管理

    安装软件包 apt-get install vim 卸载 apt-get remove/autoremove vim autoremove 会顺便卸载未使用,未被依赖的软件包 查询或者搜索软件包:: ...