// 获取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. Spring整合activiti-modeler5.16遇到的小问题

    接上一篇整合activiti-modeler并成功创建model:Spring整合activiti-modeler5.16   之后,我尝试运用自定义的model部署流程,但是在部署的过程中又遇到了一 ...

  2. Apache日志不记录图片文件设置方法和来源日志的配置

    Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...

  3. 黄聪:让WordPress主题支持语言本地化(使用poedit软件实现中文翻译功能)

    如果你的WordPress主题要提交到WordPress官方主题库,使用者来自世界各地的多种语言,那么,你就要让你的WordPress主题支持语言本地化,方便使用者进行语言翻译和制作语言包. 让Wor ...

  4. Redis容量及使用规划(转)

    在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征. (本文主要讨论Redis未启用VM支持情况) 1. Schema MySQL: 需事先设计Memc ...

  5. Oracle远程数据库一直连接不上的原因:多了个空格

  6. hibernate 组件(Component)映射

    1.类Teacher public class Teacher { private int id; private String name; private String sex; private A ...

  7. Spring中依赖注入的使用和配置

    使用方法1: //在执行此实例化的时候就会完成所有注入 ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( ...

  8. SQLAlchemy指南(tutorial)

    对应版本: 0.3.4 目录 1 安装 1.1 安装SQLAlchemy 1.2 安装一个数据库API 2 快速开始 2.1 导入 2.2 连接到数据库 3 SQLAlchemy是两个库的包装 4 操 ...

  9. Ext 中xtype一览

    基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...

  10. arcgis 栅格计算器(Spatial Analyst/Raster Calculator)

    栅格计算器中用得到$$相关函数 $$NROWS: the number of rows in the analysis window (行数)$$NCOLS: the number of column ...