`

Dom4j使用

    博客分类:
  • java
阅读更多
1、建立一个XML文档
   /**
     * 建立一个XML文档,文档名由输入属性决定
     * @param filename 需建立的文件名
     * @return 返回操作结果, 0表失败, 1表成功
     */
   
    public int createXMLFile(String filename){ 
       /** 返回操作结果, 0表失败, 1表成功 */ 
       int returnValue = 0; 
       /** 建立document对象 */ 
       Document document = DocumentHelper.createDocument(); 
       /** 建立XML文档的根books */ 
       Element booksElement = document.addElement("books"); 
       /** 加入一行注释 */ 
       booksElement.addComment("This is a test for dom4j, holen, 2004.9.11"); 
       /** 加入第一个book节点 */ 
       Element bookElement = booksElement.addElement("book"); 
       /** 加入show属性内容 */ 
       bookElement.addAttribute("show","yes"); 
       /** 加入title节点 */ 
       Element titleElement = bookElement.addElement("title"); 
       /** 为title设置内容 */ 
       titleElement.setText("Dom4j Tutorials"); 
       
       /** 类似的完成后两个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; 
    } 


2、修改XML文档

   /**
     * 修改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 File(filename)); 
           /** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */ 
           /** 先用xpath查找对象 */ 
           List list = document.selectNodes("/books/book/@show" ); 
           Iterator iter = list.iterator(); 
           while(iter.hasNext()){ 
              Attribute attribute = (Attribute)iter.next(); 
              if(attribute.getValue().equals("yes")){ 
                  attribute.setValue("no"); 
              }   
           } 
           
           /** 
            * 修改内容之二: 把owner项内容改为Tshinghua 
            * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type 
            */ 
           list = document.selectNodes("/books/owner" ); 
           iter = list.iterator(); 
           if(iter.hasNext()){ 
              Element ownerElement = (Element)iter.next(); 
              ownerElement.setText("Tshinghua"); 
              Element dateElement = ownerElement.addElement("date"); 
              dateElement.setText("2004-09-11"); 
              dateElement.addAttribute("type","Gregorian calendar"); 
           } 
           
           /** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */ 
           list = document.selectNodes("/books/book"); 
           iter = list.iterator(); 
           while(iter.hasNext()){ 
              Element bookElement = (Element)iter.next(); 
              Iterator iterator = bookElement.elementIterator("title"); 
              while(iterator.hasNext()){ 
                  Element titleElement=(Element)iterator.next(); 
                  if(titleElement.getText().equals("Dom4j Tutorials")){ 
                     bookElement.remove(titleElement); 
                  } 
              } 
           }          
           
           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; 
    } 

分享到:
评论

相关推荐

    dom4j使用手册

    dom4j使用手册;

    dom4j使用

    **DOM4J使用详解** DOM4J是一个Java库,它为XML处理提供了强大的功能,包括文档构建、查询、转换和事件处理。作为一个开源项目,DOM4J被广泛应用于各种Java应用中,尤其在处理大型XML文档时,其性能优势明显。 DOM...

    dom4j使用简介

    **DOM4J使用简介** DOM4J 是一个强大的 Java 库,专为处理 XML 文档而设计。它提供了丰富的 API,使得在 Java 中解析、创建、修改 XML 文件变得简单高效。DOM4J 不仅支持 DOM(文档对象模型)和 SAX(简单API for ...

    dom4j使用教程+dom4j.jar

    ### 四、DOM4J查询XML 1. **XPath查询**: DOM4J支持XPath表达式进行复杂查询。首先,需要创建`XPath`对象,并使用`compile()`方法编译XPath字符串,然后调用`evaluate()`方法执行查询。 ```java XPath xpath = ...

    dom4j使用与jar包

    **DOM4J使用与JAR包** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了丰富的API,使得XML的读取、创建、修改和解析变得异常简便。在这个主题中,我们将深入探讨DOM4J的核心功能以及如何在Java项目中使用...

    DOM4J使用详解

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了一种灵活且高效的方式来解析、创建、修改和操作XML文档。DOM4J不仅支持DOM模型,还支持SAX和JAXP解析器,使得开发者可以根据需要选择不同的解析策略。 1. ...

    Dom4j 使用指南.rar

    **Dom4j 使用指南** Dom4j 是一个非常流行的Java库,用于处理XML文档。它提供了灵活、高效的方式来解析、创建、操作XML内容。对于学习XML的开发者来说,Dom4j是一个不可多得的工具,因为它的API简洁易用,功能强大...

    dom4j 简单教程

    ### DOM4j 使用详解 #### 一、简介 DOM4j是一种用于处理XML文档的Java库,它提供了灵活且高效的方式来解析、修改和创建XML文件。相比于标准的DOM和SAX API,DOM4j提供了更加简洁易用的API,使得开发者能够更轻松地...

    XSD使用dom4j校验XML

    1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象。 ```java SchemaFactory schemaFactory = DocumentHelper.createSchema(new File("path_to_xsd_file.xsd...

    DOM4J 使用简介.pdf

    #### 四、DOM4J 的应用场景 DOM4J因其出色的性能和灵活性,被广泛应用于各种场景中,包括但不限于: - **Web服务**:在构建RESTful Web服务时,DOM4J可用于解析和生成XML响应。 - **配置管理**:许多软件系统使用...

    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中XPath用法

    要使用DOM4J的XPath功能,首先需要引入DOM4J库和JAXP(Java API for XML Processing),后者提供了XPath的实现。在Java项目中,这通常通过添加对应的依赖完成。例如,在Maven项目中,可以在pom.xml文件中加入以下...

    Dom4j使用简介

    Dom4j使用简介,日志 开发java必看,初级高级开发必看

    dom4j使用教程

    下面将详细讲解DOM4J的主要特性和使用方法。 ### 1. DOM4J的基本概念 - **Document**: XML文档的根节点,表示整个XML结构。 - **Element**: 表示XML文档中的元素,每个元素都有一个标签名,可以包含属性和子元素。...

    DOM4J 的使用

    DOM4J 的使用 DOM4J 是一个开源的 XML 解析包,由 dom4j.org 出品,应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM、SAX 和 JAXP。DOM4J 的主要特点是使用大量的接口,所有主要接口都在 org.dom4j 里面定义...

Global site tag (gtag.js) - Google Analytics