`

【转】JDOM解析处理xml

    博客分类:
  • java
 
阅读更多

转自http://qingbyqing.iteye.com/blog/978113

1.解析xml

Java代码  收藏代码
  1. package  com.qingbyqing.xmlParse;  
  2. import  java.io.IOException;  
  3. import  java.util.List;  
  4.   
  5. import  org.jdom.Attribute;  
  6. import  org.jdom.Document;  
  7. import  org.jdom.Element;  
  8. import  org.jdom.JDOMException;  
  9. import  org.jdom.input.SAXBuilder;  
  10.   
  11. /**  
  12.  * 解析xml  
  13.  * @author qingbyqing  
  14.  * @date 2011-3-29  
  15.  */   
  16. public   class  XmlPasreUtil {  
  17.   
  18.     Element root=null ;  
  19.     Document doc=null ;  
  20.       
  21.     /**  
  22.      * 获得根元素  
  23.      * @param fileName 用于指定的xml文件名  
  24.      * @return   
  25.      */   
  26.     public   Element getRoot(String fileName){  
  27.         //1.创建解析对象   
  28.         //2.解析对象调用build方法建立文档对象   
  29.         //3.文档对象获得根元素   
  30.         SAXBuilder builder = new  SAXBuilder( false );  
  31.         try  {  
  32.              doc = builder.build(fileName);  
  33.         } catch  (JDOMException e) {  
  34.               
  35.             e.printStackTrace();  
  36.         } catch  (IOException e) {  
  37.               
  38.             e.printStackTrace();  
  39.         }  
  40.            Element root = doc.getRootElement();  
  41.         return  root;  
  42.     }  
  43.     /**  
  44.      * 获取xml的所有信息  
  45.      * @param root 传入一个根元素对象  
  46.      */   
  47.     public   void  getElementInfo(Element root){  
  48.           
  49.         //遍历跟元素   
  50.         List<?> flist = root.getChildren("floor" );  
  51.        for ( int  i= 0 ;i<flist.size();i++){  
  52.                
  53.            Element floor =(Element) flist.get(i);  
  54.              
  55.            String level = floor.getAttributeValue("level" );  
  56.           p("第" +level+ "层" );  
  57.              
  58.           List<?> rlist = floor.getChildren("room" );  
  59.            
  60.           for ( int  j= 0 ;j<rlist.size();j++){  
  61.            
  62.              
  63.           Element room = (Element)rlist.get(j);  
  64.            
  65.             String id=room.getAttributeValue("id" );  
  66.               
  67.             String rep=room.getChild("represent" ).getText();  
  68.             String tel=room.getChild("telephone" ).getText();  
  69.             p("寝室编号:" +id+ "  负责人:" +rep+ "    寝室号码:" +tel);  
  70.               
  71.           }  
  72.        }  
  73.           
  74.           
  75.     }  
  76.       
  77.       
  78.     /**  
  79.      * @param args  
  80.      */   
  81.     public   static   void  main(String[] args) {  
  82.   
  83.             XmlPasreUtil pasre = new  XmlPasreUtil();  
  84.               
  85.             Element root=pasre.getRoot("I:\\xml\\flats.xml" );  
  86.             pasre.getElementInfo(root);  
  87.     }  
  88.       
  89.     public   void  p(String str){  
  90.         System.out.println(str);  
  91.     }  
  92.   
  93. }  


[img]

[/img]
2.创建xml

Java代码  收藏代码
  1. package  com.qingbyqing.xmlParse;  
  2.   
  3. import  java.io.FileWriter;  
  4. import  java.io.IOException;  
  5.   
  6. import  org.jdom.Attribute;  
  7. import  org.jdom.Comment;  
  8. import  org.jdom.Document;  
  9. import  org.jdom.Element;  
  10. import  org.jdom.output.Format;  
  11. import  org.jdom.output.XMLOutputter;  
  12.   
  13. /**  
  14.  * 创建一个xml  
  15.  * @author qingbyqing  
  16.  * @date 2011-3-29  
  17.  */   
  18. public   class  XmlCreateUtil {  
  19.        
  20.     Element root=null ; //跟元素   
  21.     Document doc=null ; //文档对象   
  22.        
  23.       
  24.     /**  
  25.      * 创建xml  
  26.      * @param ajax  
  27.      */   
  28.       
  29.     public   void  createRootElement(String[] ajaxs){  
  30.           
  31.         //1.根据数组创建跟元素   
  32.         //2.建立解释内容   
  33.         //3.建立子元素   
  34.           
  35.           
  36.          root = new  Element( "ajax" );  
  37.            
  38.          //建立解释内容   
  39.          Comment comment = new  Comment( "简单的xml示例" );  
  40.          root.addContent(comment);  
  41.            
  42.          //建立子元素   
  43.          for ( int  i= 0 ;i<ajaxs.length;i++){  
  44.              Element ajax = new  Element( "ajax" ); //子元素标签   
  45.              ajax.addContent(ajaxs[i]);//子元素内容   
  46.              Attribute id = new  Attribute( "id" , new  Integer(i).toString()); //子元素属性   
  47.                
  48.              ajax.setAttribute(id);  
  49.              root.addContent(ajax);  
  50.       
  51.          }            
  52.     }  
  53.       
  54.     public   void  outputXml(String fileName){  
  55.               
  56.          //1.根据跟元素创建文档   
  57.         //2.创建输出对象   
  58.         //3.创建输出格式对象   
  59.         //4.格式化文档   
  60.         //5.创建文件输出对象   
  61.         //6.输出对象   
  62.         doc =new  Document(root);  
  63.         XMLOutputter out = new  XMLOutputter();  
  64.         Format format = Format.getPrettyFormat();  
  65.         //设置输出格式   
  66.         format.setIndent(" " );  
  67.           
  68.         format.setEncoding("gbk" );  
  69.           
  70.         out.setFormat(format);  
  71.           
  72.         try  {  
  73.             FileWriter fwt = new  FileWriter(fileName);  
  74.             out.output(doc, fwt);  
  75.             fwt.flush();  
  76.             fwt.close();  
  77.         } catch  (IOException e) {  
  78.             // TODO Auto-generated catch block   
  79.             e.printStackTrace();  
  80.         }         
  81.     }  
  82.       
  83.     public   static   void  main(String args[]){  
  84.           
  85.         String[] ajaxs={"JAVASCRIPT" , "HTML" , "CSS" , "DOM" , "XMLHTTPREQUEST" };  
  86.           
  87.           XmlCreateUtil cu = new  XmlCreateUtil();  
  88.           cu.createRootElement(ajaxs);  
  89.           cu.outputXml("I:\\xml\\ajaxs.xml" );  
  90.           
  91.     }     
  92. }  

[img]

[/img]
3.修改xml

Java代码  收藏代码
  1. package  com.qingbyqing.xmlParse;  
  2.   
  3. import  java.io.FileWriter;  
  4. import  java.io.IOException;  
  5.   
  6. import  org.jdom.Document;  
  7. import  org.jdom.Element;  
  8. import  org.jdom.JDOMException;  
  9. import  org.jdom.input.SAXBuilder;  
  10. import  org.jdom.output.Format;  
  11. import  org.jdom.output.XMLOutputter;  
  12.   
  13. /**  
  14.  * 对xml进行修改删除  
  15.  * @author qingbyqing  
  16.  * @date 2011-3-29  
  17.  */   
  18.   
  19. public   class  XmlMendUtil {  
  20.     private  Document doc= null ;  
  21.       
  22.     //根据需要修改的文件创建文档   
  23.     public   void  setRootNode(String fileName){  
  24.           
  25.         SAXBuilder builder = new  SAXBuilder();  
  26.         try  {  
  27.             doc=builder.build(fileName);  
  28.               
  29.         } catch  (JDOMException e) {  
  30.             e.printStackTrace();  
  31.         } catch  (IOException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.           
  35.     }  
  36.     public   void  mendXml(){  
  37.           
  38.         if (doc!= null ){  
  39.             Element root = doc.getRootElement();  
  40.             root.removeContent(root.getChildren().size()-1 ); //删除最后一个元素   
  41.               
  42.             //删除第一个元素下的id属性   
  43.             root.getChild("ajax" ).setAttribute( "id" "3" );  
  44.             root.getChild("ajax" ).removeContent();  
  45.             //修改第二个元素的内容为:DHTML   
  46.             root.getChild("ajax" ).addContent( "DTML" );                 
  47.         }  
  48.           
  49.         return ;   
  50.     }  
  51.     public   void  outputXML(String fileName){  
  52.           
  53.            XMLOutputter out=new  XMLOutputter();  
  54.            Format format = Format.getPrettyFormat();  
  55.            format.setEncoding("UTF-8" );  
  56.            format.setIndent(" " );  
  57.              
  58.            out.setFormat(format);  
  59.              
  60.            try  {  
  61.             FileWriter fwt = new  FileWriter(fileName);  
  62.             out.output(doc, fwt);  
  63.             fwt.flush();  
  64.             fwt.close();  
  65.         } catch  (IOException e) {  
  66.             // TODO Auto-generated catch block   
  67.             e.printStackTrace();  
  68.         }  
  69.           
  70.     }  
  71.       
  72.     /**  
  73.      * @param args  
  74.      */   
  75.     public   static   void  main(String[] args) {  
  76.           
  77.         XmlMendUtil mend=new  XmlMendUtil();  
  78.         mend.setRootNode("I:\\xml\\ajaxs.xml" );  
  79.           
  80.         mend.mendXml();  
  81.         mend.outputXML("I:\\xml\\mended.xml" );  
  82.     }  
  83. }  



[img]

[/img]

生成如下文件

[/img]
将jdom-jar导入到项目中去:
[img]

[/img]

分享到:
评论

相关推荐

    使用JDOM解析XML文件

    本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...

    java jdom解析xml

    Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...

    JDOM解析本地XML

    下面我们将详细探讨JDOM解析本地XML的相关知识点。 首先,JDOM的核心概念包括`Element`、`Attribute`和`Document`。`Element`代表XML文档中的元素节点,`Attribute`则是元素的属性,而`Document`则封装了整个XML...

    用jdom解析xml

    **Java与XML:JDOM解析XML的详细指南** 在Java编程中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,用于存储结构化数据。为了处理XML文档,开发者可以使用多种库,其中之一就是JDOM。JDOM是...

    基于java的开发源码-用jdom解析xml.zip

    基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...

    用jdom解析xml文件

    在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三部分构成:SAXBuilder用于从XML源构建DOM树,Element代表XML文档的元素,Attribute代表...

    jdom解析xml文件

    **JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...

    jdom 读取XML 文件

    这个库提供了丰富的功能,能够满足大部分XML处理需求,同时它的API简洁直观,使得开发人员能快速上手。在实际应用中,结合JDOM与其他工具,如XPath表达式来查询XML数据,可以进一步提高代码的灵活性和效率。

    jdom解析XML文件and把字符串解析成XML

    ### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...

    java 使用JDOM解析xml文件.docx

    在 Java 中,解析 XML 文件是一件常见的任务,而 JDOM 是一个流行的开源库,用于解析和处理 XML 文件。本文将详细介绍如何使用 JDOM 解析 XML 文件。 JDOM 介绍 JDOM 是一个开源项目,基于树型结构,利用纯 Java ...

    Jdom解析XML

    使用JDOM解析XML文档通常包括以下几个步骤: 1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. ...

    利用JDOM解析xml文件

    本篇文章将深入探讨如何利用JDOM解析XML文件,并基于XML中的类名生成相应的对象。 首先,我们需要理解JDOM的基本概念。JDOM提供了一组Java对象来表示XML文档,包括Element(元素)、Attribute(属性)、Text(文本...

    JDOM解析xml文档实例(自己编写,仅供参考)

    1. `JDOMUtil.java`:这是一个Java类,包含了使用JDOM解析XML的主要代码。在这个例子中,我们将学习如何读取XML文件,创建一个`SAXBuilder`对象来构建XML文档的DOM(文档对象模型)表示,然后通过`Document`对象来...

    java利用jdom解析xml文件

    本篇文章将深入探讨如何利用JDOM解析XML文件,以及在这个过程中涉及的关键知识点。 首先,我们需要了解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输结构化数据。它的结构清晰...

    Jdom解析嵌套XML<一>

    这篇名为“Jdom解析嵌套XML&lt;一&gt;”的文章可能涉及了如何使用JDOM处理包含复杂嵌套结构的XML文件。 首先,我们来了解一下JDOM的基本概念。JDOM的主要目标是为Java开发者提供一个高性能、内存中且基于树的API,以便...

    jdom解析xml文件小实例

    在这个小实例中,我们将深入探讨如何使用JDOM解析XML文件。 首先,我们需要引入JDOM的依赖。在Java项目中,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom &lt;artifactId&gt;...

    JDOM解析XML

    要使用JDOM解析XML,首先需要将JDOM的jar文件(如jdom.jar)添加到项目的类路径中。此外,由于XML解析通常涉及到其他库,如XPath解析和DTD处理,我们看到压缩包中还包含了一些其他相关的jar文件: 1. xalan.jar:...

    jdom.jar xml解析

    **使用JDOM解析XML的步骤** 1. 创建`SAXBuilder`实例。 2. 使用`SAXBuilder`的`build()`方法从XML输入流或文件路径解析XML。 3. 获取`Document`对象,它是整个XML文档的根。 4. 通过`Document`对象遍历或修改元素、...

    jdom包解析xml数据

    JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。 JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果.

    Jdom解析xml案例

    ### JDOM解析XML的基本概念 1. **DOM(Document Object Model)**:DOM是一种树形结构,将XML文档解析为一系列的对象,这些对象可以被Java程序访问和操作。JDOM就是基于DOM模型的实现。 2. **Element**: 在JDOM中...

Global site tag (gtag.js) - Google Analytics