`
asdfbb
  • 浏览: 13854 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Dom4j例子,非原创,出处不详

    博客分类:
  • java
阅读更多
  import   java.io.File;   
  import   java.io.*;   
  import   java.util.*;   
  import   java.util.List;   
    
  import   org.dom4j.Attribute;   
    
  import   org.dom4j.Document;   
    
  import   org.dom4j.DocumentHelper;   
    
  import   org.dom4j.Element;   
    
  import   org.dom4j.io.OutputFormat;   
    
  import   org.dom4j.io.SAXReader;   
    
  import   org.dom4j.io.XMLWriter;   
  import   org.dom4j.DocumentException;   
    
  /**   
    *   @author   Holen   Chen   
    
    */   
    
  public   class   Work   {   
    
      public   Work()   {   
    
      }   
    
      /**   
        *   建立一个XML文档,文档名由输入参数决定   
    
        *   @param   filename   需建立的文件名   
    
        *   @return   返回操作结果,   0表失败,   1表成功   
    
        */   
    
      public   int   createXMLFile(String   filename)   {   
    
          /**   返回操作结果,   0表失败,   1表成功   */   
    
          int   returnValue   =   0;   
    
          /**   建立document对象   */   
    
          Document   document   =   DocumentHelper.createDocument();   
    
          /**   建立XML文档的根dates   */   
    
          Element   booksElement   =   document.addElement("dates");   
    
          /**   加入一行注释   */   
    
          booksElement.addComment("This   is   a   test   workDate,   2004.11.18");   
    
          /**   加入第一个workday节点   */   
    
          Element   bookElement   =   booksElement.addElement("workday");   
    
          /**   加入day节点   */   
    
          Element   titleElement   =   bookElement.addElement("day");   
    
          /**   设置属性   */   
          titleElement.addAttribute("flag",   "yes");   
    
          /**   为title设置内容   */   
    
          titleElement.setText("2004-11-16");   
    
          /**   类似的完成后两个book   
            bookElement   =   booksElement.addElement("book");   
    
            bookElement.addAttribute("show","yes");   
    
            titleElement   =   bookElement.addElement("title");   
    
            titleElement.setText("Lucene   Studing");   
    
            bookElement   =   booksElement.addElement("book");   
    
            bookElement.addAttribute("show","no");   
    
            titleElement   =   bookElement.addElement("title");   
    
            titleElement.setText("Lucene   in   Action");   
    
    
    
            加入owner节点   
    
            Element   ownerElement   =   booksElement.addElement("owner");   
    
            ownerElement.setText("O'Reilly");   
    
            ****************/   
    
          try   {   
    
              /**   将document中的内容写入文件中   */   
    
              XMLWriter   writer   =   new   XMLWriter(new   FileWriter(new   File(filename)));   
    
              writer.write(document);   
    
              writer.close();   
    
              /**   执行成功,需返回1   */   
    
              returnValue   =   1;   
    
          }   
          catch   (Exception   ex)   {   
    
              ex.printStackTrace();   
    
          }   
    
          return   returnValue;   
    
      }   
    
      /**   
        *   修改XML文件中内容,并另存为一个新文件   
    
        *   重点掌握dom4j中如何添加节点,修改节点,删除节点   
    
        *   @param   filename   修改对象文件   
    
        *   @param   newfilename   修改后另存为该文件   
    
        *   @return   返回操作结果,   0表失败,   1表成功   
    
        */   
    
      public   int   ModiXMLFile(String   filename,   String   newfilename)   {   
    
          int   returnValue   =   0;   
    
          try   {   
    
              SAXReader   saxReader   =   new   SAXReader();   
    
              Document   document   =   saxReader.read(new   FileReader(new   File(filename)));   
    
              /**   修改内容之一:   如果book节点中show参数的内容为yes,则修改成no   */   
    
              /**   先用xpath查找对象   */   
    
              List   list   =   document.selectNodes("/dates/workday/day/@flag");   
    
              Iterator   iter   =   list.iterator();   
    
              while   (iter.hasNext())   {   
    
                  Attribute   attribute   =   (Attribute)   iter.next();   
    
                  if   (attribute.getValue().equals("yes"))   {   
    
                      attribute.setValue("no");   
    
                  }   
    
              }   
    
              /**   
                *   修改内容之二:   
    
                *   并在workday节点中加入day节点,day节点的内容为2004-11-17,还为day节点添加一个参数flag   
    
                */   
    
              list   =   document.selectNodes("/dates/workday");   
    
              iter   =   list.iterator();   
    
              if   (iter.hasNext())   {   
    
                  Element   workdayElement   =   (Element)   iter.next();   
    
                  //ownerElement.setText("Tshinghua");   
    
                  Element   dayElement   =   workdayElement.addElement("day");   
    
                  dayElement.setText("2004-11-17");   
    
                  dayElement.addAttribute("flag",   "false");   
    
              }   
    
              /**   修改内容之三:   若day内容为2004-11-16,则将属性falg设为false   */   
    
              list   =   document.selectNodes("/dates/workday");   
    
              iter   =   list.iterator();   
    
              while   (iter.hasNext())   {   
    
                  Element   workdayElement   =   (Element)   iter.next();   
    
                  Iterator   iterator   =   workdayElement.elementIterator("day");   
    
                  while   (iterator.hasNext())   {   
    
                      Element   dayElement   =   (Element)   iterator.next();   
    
                      if   (dayElement.getText().equals("2004-11-16"))   {   
                          List   list1   =   dayElement.attributes();   
                          Iterator   iter1   =   list1.iterator();   
                          while   (iter1.hasNext())   {   
                              Attribute   attribute   =   (Attribute)   iter1.next();   
                              attribute.setValue("kkkkkkkkkkk");   
                          }   
                      }   
                  }   
    
              }   
    
              try   {   
    
                  /**   将document中的内容写入文件中   */   
    
                  XMLWriter   writer   =   new   XMLWriter(new   FileWriter(new   File(newfilename)));   
    
                  writer.write(document);   
    
                  writer.close();   
    
                  /**   执行成功,需返回1   */   
    
                  returnValue   =   1;   
    
              }   
              catch   (Exception   ex)   {   
    
                  ex.printStackTrace();   
    
              }   
    
          }   
          catch   (Exception   ex)   {   
    
              ex.printStackTrace();   
    
          }   
    
          return   returnValue;   
    
      }   
    
      /**   
        *   格式化XML文档,并解决中文问题   
    
        *   @param   filename   
    
        *   @return   
    
        */   
    
      public   int   formatXMLFile(String   filename)   {   
    
          int   returnValue   =   0;   
    
          try   {   
    
              SAXReader   saxReader   =   new   SAXReader();   
    
              Document   document   =   saxReader.read(new   FileReader(new   File(filename)));   
    
              XMLWriter   output   =   null;   
    
              /**   格式化输出,类型IE浏览一样   */   
    
              OutputFormat   format   =   OutputFormat.createPrettyPrint();   
    
              /**   指定XML字符集编码   */   
    
              format.setEncoding("GBK");   
    
              output   =   new   XMLWriter(new   FileWriter(new   File(filename)),   format);   
    
              output.write(document);   
    
              output.close();   
    
              /**   执行成功,需返回1   */   
    
              returnValue   =   1;   
    
          }   
          catch   (Exception   ex)   {   
    
              ex.printStackTrace();   
    
          }   
    
          return   returnValue;   
    
      }   
      /**   
        *   create   one   XML   of   file   
        *   @param   holiday   String[]   
        *   @param   workday   String[]   
        *   @param   filename   String         filename   OF   XML   
        */   
      public   void   createXML(String[]   holiday,String[]   workday,   String   filename)   {   
          Document   document   =   DocumentHelper.createDocument();   
          Element   booksElement   =   document.addElement("dates");   
          for   (int   i   =   0;   i   <   holiday.length;   i++)   {   
              Element   bookElement   =   booksElement.addElement("holiday");   
              bookElement.addAttribute("flag",   "yes");   
              bookElement.setText(holiday[i]);   
          }   
          for   (int   i   =   0;   i   <   workday.length;   i++)   {   
              Element   bookElement   =   booksElement.addElement("holiday");   
              bookElement.addAttribute("flag",   "no");   
              bookElement.setText(workday[i]);   
          }   
          try   {   
              XMLWriter   writer   =   new   XMLWriter(new   FileWriter(new   File(filename)));   
              writer.write(document);   
              writer.close();   
          }   
          catch   (Exception   ex)   {   
              ex.printStackTrace();   
          }   
      }   
      public   HashMap   getXMLElement(String   filename)   throws   FileNotFoundException,   
              DocumentException   {   
          HashMap   hs=new   HashMap();   
          SAXReader   saxReader   =   new   SAXReader();   
          Document   document   =   saxReader.read(new   FileReader(new   File(filename)));   
          Element   root=document.getRootElement();   
          List   list=root.elements("holiday");   
          if(list.isEmpty()){   
              return   null;   
          }else{   
              Iterator   it=list.iterator();   
              while(it.hasNext()){   
                  Element   holiday=(Element)it.next();   
                  hs.put(holiday.getTextTrim(),holiday.attribute("flag").getValue());   
              }   
              return   hs;   
          }   
      }   
  }   
  
分享到:
评论

相关推荐

    Dom4J完成例子,Dom4J

    在这个例子中,我们将深入探讨Dom4j的核心功能和使用方法。 **1. XML解析** 解析XML文档是Dom4j的基本操作之一。通过`DocumentBuilderFactory`和`DocumentBuilder`,我们可以将XML字符串或文件转换为`Document`...

    Dom4j例子,可以解析大部分的XML

    这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。 总之,Dom4j是一个强大的XML处理库,适用于各种XML相关的任务,无论是读取、解析、修改还是创建XML文档。其简洁的API和对DOM和SAX的...

    dom4j简单例子

    在这个“dom4j简单例子”中,我们将深入理解DOM4J的基本用法和核心概念,以帮助你更好地利用这个库在实际项目中处理XML数据。 1. **DOM4J基本概念** - **Document**: 表示整个XML文档,它是DOM4J树结构的根节点。 ...

    dom4j 解析xml例子

    在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、查询和修改变得更为简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的安装及其在Maven项目中的应用。 首先,DOM4J...

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、修改和查询变得简单。这次我们有两个版本的DOM4J库:1.6.1和2.0.0-ALPHA。这两个版本在功能、性能和API设计上都有所...

    dom4j基本例子

    总的来说,这个"dom4j基本例子"涵盖了DOM4J的基本操作,包括XML的解析、元素的增删改查以及使用XPath进行查询。通过学习和理解这个例子,你可以更好地掌握DOM4J库,并将其应用到自己的XML处理任务中。如果你深入研究...

    用dom4j操作xml的例子

    DOM4J是Java中一个非常流行的XML处理库,它提供了丰富的API来解析、创建、修改XML文档。本篇文章将深入探讨如何利用DOM4J进行XML的基本操作,包括增加元素、删除元素、修改元素和查询元素。 1. **解析XML文档** 在...

    dom4j dom4j dom4j dom4j

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单易行。在Java世界中,DOM4J是与DOM、SAX和JDOM等其他XML处理库并驾齐驱的一个选择,尤其在处理...

    dom4j例子与简介

    ### DOM4j:高效、灵活的XML处理框架 DOM4j是一个开源的Java库,用于处理XML文档。它提供了一套简洁且强大的API,使得开发者能够轻松地读取、创建和修改XML数据。DOM4j的设计哲学是尽可能接近XML本身,从而让开发者...

    DOM4j教程 例子

    ### DOM4j 教程与实例详解 #### 一、DOM4j简介 DOM4j是一种用于处理XML的Java API,其设计目的是提供一个高效、功能丰富且易于使用的API。DOM4j是一个开源项目,可以在SourceForge等开源平台上获取到。DOM4j不仅在...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    标题提及的"dom4j_1.6.1.jar"和"dom4j_2.1.0.jar"是两个不同版本的DOM4J库的Java档案文件,DOM4J是一个非常流行的Java XML API,用于处理XML文档。这两个版本的差异在于功能、性能优化和可能存在的bug修复。描述中...

    dom4j-2.1.3.zip

    另一份重要的资源是"dom4j-2.1.3-sources.jar",它提供了DOM4J库的源代码,允许开发者深入研究DOM4J的内部实现,对于理解DOM4J的工作原理、进行扩展或者调试都是不可或缺的。通过阅读源代码,开发者可以学习到如何...

    dom4j dom4j1.6 dom4j最新版

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J 1.6是该库的一个较新版本,提供了完整的功能集以及对XML标准的广泛支持。 DOM4J的核心...

    dom4j操作XMl例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件...

    DOM4j和log4j例子详解

    **DOM4j与log4j简介** DOM4j是一个开源的Java XML API,它提供了非常丰富的功能,包括XML解析、文档构建、XPath处理以及XML Schema支持。DOM4j以其高效性能和易于使用的特性,被广泛应用于Java开发中,特别是在处理...

    dom4j配置文件例子

    在这个"dom4j配置文件例子"中,我们将会深入探讨DOM4J的核心概念和如何在实际项目中应用。 首先,DOM4J的主要组件包括Element、Attribute、Document、Namespace等,它们分别代表了XML文档中的元素、属性、文档和...

    dom4j-2.0.3.zip

    《深入解析DOM4J——基于Java的XML处理框架》 DOM4J,作为一个强大的Java XML API,是处理XML文档的主流工具之一。它提供了一套简单而高效的方式来操作XML文档,包括读取、写入、修改和遍历XML结构。在Java开发中,...

    dom4j所依赖的所有jar包

    在Java项目中,尤其是需要频繁处理XML结构数据时,DOM4J是一个不可或缺的库。通过结合`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个jar包,开发者可以充分利用DOM4J的功能来实现各种XML相关的任务。

Global site tag (gtag.js) - Google Analytics