// 获取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. eclipse下编译hadoop源代码(转)

    hadoop是一个分布式存储和分布式计算的框架.在日常使用hadoop时,我们会发现hadoop不能完全满足我们的需要,我们可能需要修改hadoop的源代码并重新编译.打包. 下面将详细描述如何从sv ...

  2. JavaScript正则详谈

    JavaScript RegExp 基础详谈   前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果 ...

  3. Hbase的安装(hadoop-2.6.0,hbase1.0)

    Hbase的安装相对很简单啊...只要你装了Hadoop 装Hbase就是分分钟的事 如果要装hadoop集群的话 hadoop分类的集群安装好了,如果已经装好单机版~ 那就再配置如下就好~ 一.vi ...

  4. Form_Form Builder开发基于视图页面和自动代码生成包(案例)

     2014-01-06 Created By BaoXinjian

  5. Altium Designer /DXP无网络铺铜:

    有的设计者在PCB加工的时候会删除网络以便为了保护.但如果后续在无网络PCB上进行修改时就不叫麻烦,没有网络连铺铜都无法进行.一般手动添加网络只对要铺铜的地网络进行,其它的要修改者自己确保版图的正确性 ...

  6. LPC1768之看门狗

  7. Maven依赖(转)

    相同依赖级别,先加入的先依赖不同依赖级别,级别短的先依赖 version-->SNAPSHOTxxx-里程碑-->SNAPSHOT,alpha,beta,Release(RC),GA()s ...

  8. [Flex] IFrame系列 —— IFrame嵌入html后Alert弹出窗口被IFrame遮挡问题

    <?xml version="1.0" encoding="utf-8"?> <!--- - - - - - - - - - - - - - ...

  9. Oracle中的多表查询

    多表查询 l 笛卡尔积: N*M l 使用关联字段消除笛卡尔积的多余数据: SELECT EMP.*,DEPT.DNAME,DEPT.LOC FROM EMP, DEPT WHERE EMP.DEPT ...

  10. 关于BEA-000402和BEA-000438

    OS:rh5 64位 JDK:1.5 64位 weblogic:9.2.3 jar 应用程序部署后,启动受管服务器报如下警告和错误: 这个问题导致系统性能下降,打开weblogic控制台各项功能和应用 ...