// 获取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. DBA_Oracle海量数据处理分析(方法论)

    2014-12-18 Created By BaoXinjian

  2. POJ 1410 Intersection(计算几何)

    题目大意:题目意思很简单,就是说有一个矩阵是实心的,给出一条线段,问线段和矩阵是否相交解题思路:用到了线段与线段是否交叉,然后再判断线段是否在矩阵里面,这里要注意的是,他给出的矩阵的坐标明显不是左上和 ...

  3. NeHe OpenGL教程 第三十六课:从渲染到纹理

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. 图片--Android加载图片导致内存溢出(Out of Memory异常)

    Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory  Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证) ...

  5. 打印1到最大的n位数

    打印1到最大的n位数----java实现 题目:输入数字n,按顺序打印出从1到最大的n位十进制数.比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999. 分析: 1.这是一个典型的 ...

  6. ADO.NET Entity Framework(EF)

    ylbtech-Miscellaneos: ADO.NET Entity Framework(EF) A,返回顶部 1, ADO.NET Entity Framework 是微软以 ADO.NET 为 ...

  7. JAVA 聊天窗口

    //聊天窗口 import java.awt.*; import javax.swing.*; public class Jiemian9 extends JFrame{ JTextArea wby; ...

  8. Ubuntu查看磁盘空间命令(转载)

    linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...

  9. 使用SVN进行项目版本管理

    1.摘要 本文描述了利用SVN进行项目版本管理的方法,涉及项目版本号命名规则.SVN目录结构.第三方代码库的管理.版本创建.发布.修订.合并等行为的方法和原则. 2.版本号命名规则 版本号采用主版本号 ...

  10. Mac添加环境变量的三种方法

    法一: sudo vi /etc/paths 来编辑 paths,将环境变量添加到 paths 中. vim 是一个编辑器,另外还有几个,如:Pico,Emacs. Hint:输入环境变量时,不用一个 ...