`
jetway
  • 浏览: 488507 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

dom4j

    博客分类:
  • java
阅读更多
dom4j 是一种解析 XML 文档的开放源代码 XML 框架,与 W3C DOM API 相比,使用 dom4j 所包含的解析器的好处是 dom4j 拥有本地的 XPath 支持.DOM 解析器不支持使用 XPath 选择节点.

  该解析器可以从 http://dom4j.org/ 获取.

java 代码
  1. package com.nikee.dom4j;   
  2. import org.dom4j.Document;   
  3. import org.dom4j.DocumentHelper;   
  4. import org.dom4j.Element;   
  5. import org.dom4j.io.OutputFormat;   
  6. import org.dom4j.io.XMLWriter;   
  7. import java.io.*;   
  8.     
  9. public class XmlDom4J{   
  10.  public void generateDocument(){   
  11.   //使用 DocumentHelper 类创建一个文档实例。 DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类   
  12.   Document document = DocumentHelper.createDocument();   
  13.      
  14.   //使用 addElement()方法创建根元素catalog , addElement()用于向 XML 文档中增加元素   
  15.   Element catalogElement = document.addElement("catalog");   
  16.      
  17.   //在 catalog 元素中使用 addComment() 方法添加注释"An XML catalog"   
  18.   catalogElement.addComment("An XML Catalog");   
  19.      
  20.   //在 catalog 元素中使用 addProcessingInstruction() 方法增加一个处理指令   
  21.   catalogElement.addProcessingInstruction("target","text");   
  22.      
  23.   //在 catalog 元素中使用 addElement() 方法增加 journal 元素   
  24.   Element journalElement = catalogElement.addElement("journal");   
  25.   //使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 属性   
  26.   journalElement.addAttribute("title""XML Zone");   
  27.   journalElement.addAttribute("publisher""IBM developerWorks");   
  28.      
  29.      
  30.   Element articleElement=journalElement.addElement("article");   
  31.   articleElement.addAttribute("level""Intermediate");   
  32.   articleElement.addAttribute("date""December-2001");   
  33.      
  34.   Element titleElement=articleElement.addElement("title");   
  35.   titleElement.setText("Java configuration with XML Schema");   
  36.      
  37.   Element authorElement=articleElement.addElement("author");   
  38.   Element firstNameElement=authorElement.addElement("firstname");   
  39.   firstNameElement.setText("Marcello");   
  40.   Element lastNameElement=authorElement.addElement("lastname");   
  41.   lastNameElement.setText("Vitaletti");   
  42.      
  43.   //可以使用 addDocType() 方法添加文档类型说明   
  44.   //这样就向 XML 文档中增加文档类型说明:   
  45.   document.addDocType("catalog","nikee","file://c:/Dtds/catalog.dtd");   
  46.   try{   
  47.    //XMLWriter output = new XMLWriter(new FileWriter( new File("D:/eclipse3.2/workspace/WebServices/src/com/nikee/dom4j/catalog.xml")));   
  48.     FileOutputStream fos=new FileOutputStream("D:/eclipse3.2/workspace/WebServices/src/com/nikee/dom4j/catalog.xml");   
  49.        OutputFormat of=new OutputFormat("    "true);   
  50.        XMLWriter xw=new XMLWriter(fos, of);   
  51.        xw.write( document );   
  52.        xw.close();   
  53.   }   
  54.   catch(IOException e)   
  55.   {   
  56.    System.out.println(e.getMessage());   
  57.   }   
  58.  }   
  59.     
  60.  public static void main(String[] argv){   
  61.   XmlDom4J dom4j=new XmlDom4J();   
  62.   dom4j.generateDocument();   
  63.  }   
  64. }   
  65.   
  66.     

    xml 代码

 

  1. <!--sp-->xml version="1.0" encoding="UTF-8"?>  
  2. <!--CTYPE catalog PUBLIC "nikee" "file://c:/Dtds/catalog.dtd"</sp-->>  
  3.   
  4.  <catalog>  
  5.     <!--An XML Catalog--><!--sp-->target text?>  
  6.   
  7.     <journal title="XML Zone" publisher="IBM developerWorks">  
  8.      <article level="Intermediate" date="December-2001">  
  9.          <title>Java configuration with XML Schematitle>  
  10.          <author>  
  11.              <firstname>Marcellofirstname>  
  12.              <lastname>Vitalettilastname>  
  13.          author>  
  14.      article>  
  15.     journal>  
  16.  catalog>  

 

XmlDom4J.java 用于创建 XML 文档 catalog.xml

java 代码
  1. package com.nikee.dom4j;   
  2.   
  3. import org.dom4j.Document;   
  4. import org.dom4j.Element;   
  5. import org.dom4j.Attribute;   
  6. import java.util.List;   
  7. import java.util.Iterator;   
  8.   
  9. import org.dom4j.io.OutputFormat;   
  10. import org.dom4j.io.XMLWriter;   
  11. import java.io.*;   
  12.   
  13. import org.dom4j.DocumentException;   
  14. import org.dom4j.io.SAXReader;    
  15.     
  16. public class Dom4Jparser{   
  17.     public Dom4Jparser(){   
  18.         //construction   
  19.     }   
  20.        
  21.     public void modifyDocument(File inputXml){   
  22.         try{   
  23.             //使用 SAXReader 解析 XML 文档 catalog.xml   
  24.             SAXReader saxReader = new SAXReader();   
  25.             Document document = saxReader.read(inputXml);   
  26.                
  27.             //使用 XPath 表达式从 article 元素中获得 level 节点列表。如果 level 属性值是"Intermediate"则改为"Introductory"   
  28.             List list = document.selectNodes("//article/@level");   
  29.             Iterator iter=list.iterator();   
  30.             while(iter.hasNext()){   
  31.                 Attribute attribute=(Attribute)iter.next();   
  32.                 if(attribute.getValue().equals("Intermediate"))   
  33.                     attribute.setValue("Introductory");    
  34.             }   
  35.                
  36.             list = document.selectNodes("//article/@date" );   
  37.             iter=list.iterator();   
  38.             while(iter.hasNext()){   
  39.                 Attribute attribute=(Attribute)iter.next();   
  40.                 if(attribute.getValue().equals("December-2001"))   
  41.                     attribute.setValue("October-2002");   
  42.             }   
  43.                
  44.             //获取 article 元素列表,从 article 元素中的 title 元素得到一个迭代器,并修改 title 元素的文本   
  45.             list = document.selectNodes("//article" );   
  46.             iter=list.iterator();   
  47.             while(iter.hasNext()){   
  48.                 Element element=(Element)iter.next();   
  49.                 Iterator iterator=element.elementIterator("title");   
  50.                 while(iterator.hasNext()){   
  51.                     Element titleElement=(Element)iterator.next();   
  52.                     if(titleElement.getText().equals("Java configuration with XML Schema"))   
  53.                         titleElement.setText("Create flexible and extensible XML schema");   
  54.                 }   
  55.             }   
  56.                
  57.                
  58.             list = document.selectNodes("//article/author" );   
  59.             iter=list.iterator();   
  60.             while(iter.hasNext()){   
  61.                 Element element=(Element)iter.next();   
  62.                 Iterator iterator=element.elementIterator("firstname");   
  63.                 while(iterator.hasNext()){   
  64.                     Element firstNameElement=(Element)iterator.next();   
  65.                     if(firstNameElement.getText().equals("Marcello"))   
  66.                         firstNameElement.setText("Ayesha");   
  67.                 }   
  68.             }   
  69.                
  70.             list = document.selectNodes("//article/author" );   
  71.             iter=list.iterator();   
  72.             while(iter.hasNext()){   
  73.                 Element element=(Element)iter.next();   
  74.                 Iterator iterator=element.elementIterator("lastname");   
  75.                 while(iterator.hasNext()){   
  76.                     Element lastNameElement=(Element)iterator.next();   
  77.                     if(lastNameElement.getText().equals("Vitaletti"))   
  78.                         lastNameElement.setText("Malik");   
  79.                 }   
  80.             }   
  81.                
  82.             FileOutputStream fos=new FileOutputStream("D:/eclipse3.2/workspace/WebServices/src/com/nikee/dom4j/catalog-modified.xml");   
  83.             OutputFormat of=new OutputFormat("   ",true);   
  84.             XMLWriter xw=new XMLWriter(fos, of);   
  85.             xw.write( document );   
  86.             xw.close();   
  87.         }   
  88.         catch(DocumentException e)   
  89.         {   
  90.             e.printStackTrace();   
  91.         }   
  92.         catch(IOException e){   
  93.             e.printStackTrace();   
  94.         }   
  95.     }   
  96.        
  97.     public static void main(String argv[]){   
  98.         Dom4Jparser dom4jParser=new Dom4Jparser();   
  99.         dom4jParser.modifyDocument(new File("D:/eclipse3.2/workspace/WebServices/src/com/nikee/dom4j/catalog.xml"));   
  100.     }   
  101. }   
  102.   

 

xml 代码
  1. <!--sp-->xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <!--<!DOCTYPE catalog PUBLIC "nikee" "file://c:/Dtds/catalog.dtd">-->  
  4. <catalog>  
  5. <!--An XML Catalog--><!--sp-->target text?>  
  6.  <journal title="XML Zone" publisher="IBM developerWorks">    
  7.    <article level="Introductory" date="October-2002">      
  8.       <title>Create flexible and extensible XML schematitle>  
  9.       <author>       
  10.          <firstname>Ayeshafirstname>  
  11.          <lastname>Maliklastname>  
  12.       author>  
  13.    article>  
  14.  journal>  
  15. catalog>  

 Dom4Jparser.java用于修改 XML 文档 catalog.xml为catalog-modified.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 dom4j dom4j dom4j

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单易行。在Java世界中,DOM4J是与DOM、SAX和JDOM等其他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_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-1.6.1.jar (dom4j) 欢迎下载

    dom4j-1.6.1.jar,Dom4j是一个Java的XML API接口,是jdom的进化版,dom4j基本用来读写xml文件,是一个十分优秀的JavaXML API接口

    dom4j-2.1.1-API文档-中英对照版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

    dom4j所依赖的所有jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得开发者可以方便地读取、写入、修改以及操作XML文件。DOM4J 1.6.1是这个库的一个稳定版本,发布于较早时期,但依然广泛应用于许多Java...

    dom4j1.1-1.6.1.rar

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于“Document Object Model for Java”,但它并不仅仅是一个DOM实现,它还包含...

    dom4j需要的包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于“Document Object Model for Java”,它采用面向对象的设计思想,提供了...

    dom4j-2.1.3.zip

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

    dom4j-2.0.3.zip

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

    dom4j.jar 下载

    DOM4J是一个强大的Java库,专门用于处理XML文档。它是一个灵活且高性能的XML解析器,提供了丰富的API来创建、修改和操作XML数据。在Java应用程序中,DOM4J作为一个流行的选择,尤其在处理复杂的XML结构时,因为它...

    所有版本的dom4j工具包

    标题提到的"所有版本的dom4j工具包"表明这是一个包含多版本DOM4J库的集合,可能包括了从早期到较新的一些版本,如dom4j-1.4.jar、dom4j-1.6.1.jar和dom4j-1.5.2.jar。这些不同版本的库可能分别对应于不同的功能特性...

    dom4j框架解析教程

    ### DOM4J框架解析教程 #### 一、DOM4J简介 DOM4J是一个非常优秀的XML解析工具,它由dom4j.org开发并提供。该工具不仅免费且开源,广泛应用于Java平台上,提供了对XML、XPath及XSLT的强大支持。DOM4J的设计充分考虑...

    dom4j 2.1.1

    DOM4J 2.1.1 是一个针对Java平台的高效、开源的XML处理库,其全称为“Document Object Model for Java”。这个库提供了一系列强大的API,使得开发人员能够轻松地解析、创建、修改和操作XML文档。XML(eXtensible ...

    dom4j-2.1.1-API文档-中文版.zip

    赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...

    dom4j所需要的所有jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的方式来解析、创建、操作和理解XML数据。这个库在Java开发中广泛使用,因为它提供了比标准Java DOM API更简单、性能更好的XML处理方式。以下是...

    org.dom4j.jar

    当我们遇到“java.lang.ClassNotFoundException: org.dom4j.DocumentException”的错误提示时,这通常意味着系统中缺少了DOM4j库,只需将“org.dom4j.jar”添加到项目类路径中即可解决此问题。 DOM4J是基于DOM和SAX...

Global site tag (gtag.js) - Google Analytics