`
qingBYqing
  • 浏览: 50310 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JDOM解析处理xml

阅读更多
1.解析xml
package com.qingbyqing.xmlParse;
import java.io.IOException;
import java.util.List;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

/**
 * 解析xml
 * @author qingbyqing
 * @date 2011-3-29
 */
public class XmlPasreUtil {

	Element root=null;
	Document doc=null;
	
	/**
	 * 获得根元素
	 * @param fileName 用于指定的xml文件名
	 * @return 
	 */
	public  Element getRoot(String fileName){
		//1.创建解析对象
		//2.解析对象调用build方法建立文档对象
		//3.文档对象获得根元素
		SAXBuilder builder = new SAXBuilder(false);
		try {
			 doc = builder.build(fileName);
		} catch (JDOMException e) {
			
			e.printStackTrace();
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		   Element root = doc.getRootElement();
		return root;
	}
	/**
	 * 获取xml的所有信息
	 * @param root 传入一个根元素对象
	 */
	public void getElementInfo(Element root){
		
		//遍历跟元素
		List<?> flist = root.getChildren("floor");
       for(int i=0;i<flist.size();i++){
    	     
    	   Element floor =(Element) flist.get(i);
    	   
    	   String level = floor.getAttributeValue("level");
     	  p("第"+level+"层");
    	   
    	  List<?> rlist = floor.getChildren("room");
    	 
    	  for(int j=0;j<rlist.size();j++){
    	 
    	   
    	  Element room = (Element)rlist.get(j);
    	 
    	    String id=room.getAttributeValue("id");
    	    
    	    String rep=room.getChild("represent").getText();
    	    String tel=room.getChild("telephone").getText();
    	    p("寝室编号:"+id+"  负责人:"+rep+"    寝室号码:"+tel);
    	    
    	  }
       }
		
		
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {

            XmlPasreUtil pasre = new XmlPasreUtil();
            
            Element root=pasre.getRoot("I:\\xml\\flats.xml");
            pasre.getElementInfo(root);
	}
	
	public void p(String str){
		System.out.println(str);
	}

}

[img]

[/img]
2.创建xml
package com.qingbyqing.xmlParse;

import java.io.FileWriter;
import java.io.IOException;

import org.jdom.Attribute;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * 创建一个xml
 * @author qingbyqing
 * @date 2011-3-29
 */
public class XmlCreateUtil {
	 
	Element root=null;//跟元素
	Document doc=null;//文档对象
	 
	
	/**
	 * 创建xml
	 * @param ajax
	 */
	
	public void createRootElement(String[] ajaxs){
		
		//1.根据数组创建跟元素
		//2.建立解释内容
		//3.建立子元素
		
		
		 root = new Element("ajax");
		 
		 //建立解释内容
		 Comment comment = new Comment("简单的xml示例");
		 root.addContent(comment);
		 
		 //建立子元素
		 for(int i=0;i<ajaxs.length;i++){
			 Element ajax = new Element("ajax");//子元素标签
			 ajax.addContent(ajaxs[i]);//子元素内容
			 Attribute id = new Attribute("id",new Integer(i).toString());//子元素属性
			 
			 ajax.setAttribute(id);
			 root.addContent(ajax);
	
		 }			
	}
	
	public void outputXml(String fileName){
		    
		 //1.根据跟元素创建文档
		//2.创建输出对象
		//3.创建输出格式对象
		//4.格式化文档
		//5.创建文件输出对象
		//6.输出对象
		doc =new Document(root);
		XMLOutputter out = new XMLOutputter();
		Format format = Format.getPrettyFormat();
		//设置输出格式
		format.setIndent(" ");
		
		format.setEncoding("gbk");
		
		out.setFormat(format);
		
		try {
			FileWriter fwt = new FileWriter(fileName);
			out.output(doc, fwt);
			fwt.flush();
			fwt.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
	
	public static void main(String args[]){
		
		String[] ajaxs={"JAVASCRIPT","HTML","CSS","DOM","XMLHTTPREQUEST"};
		
		  XmlCreateUtil cu = new XmlCreateUtil();
		  cu.createRootElement(ajaxs);
		  cu.outputXml("I:\\xml\\ajaxs.xml");
		
	}	
}
[img]

[/img]
3.修改xml
package com.qingbyqing.xmlParse;

import java.io.FileWriter;
import java.io.IOException;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * 对xml进行修改删除
 * @author qingbyqing
 * @date 2011-3-29
 */

public class XmlMendUtil {
	private Document doc=null;
	
	//根据需要修改的文件创建文档
	public void setRootNode(String fileName){
		
		SAXBuilder builder = new SAXBuilder();
		try {
			doc=builder.build(fileName);
			
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	public void mendXml(){
		
		if(doc!=null){
			Element root = doc.getRootElement();
			root.removeContent(root.getChildren().size()-1);//删除最后一个元素
			
			//删除第一个元素下的id属性
			root.getChild("ajax").setAttribute("id", "3");
			root.getChild("ajax").removeContent();
			//修改第二个元素的内容为:DHTML
			root.getChild("ajax").addContent("DTML");				
		}
		
		return;	
	}
	public void outputXML(String fileName){
		
		   XMLOutputter out=new XMLOutputter();
		   Format format = Format.getPrettyFormat();
		   format.setEncoding("UTF-8");
		   format.setIndent(" ");
		   
		   out.setFormat(format);
		   
		   try {
			FileWriter fwt = new FileWriter(fileName);
			out.output(doc, fwt);
			fwt.flush();
			fwt.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		XmlMendUtil mend=new XmlMendUtil();
		mend.setRootNode("I:\\xml\\ajaxs.xml");
		
        mend.mendXml();
        mend.outputXML("I:\\xml\\mended.xml");
	}
}


[img]

[/img]

生成如下文件

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

[/img]
  • 大小: 11.8 KB
  • 大小: 15.2 KB
  • 大小: 8.8 KB
  • 大小: 4.8 KB
  • 大小: 6.9 KB
0
0
分享到:
评论
2 楼 shyhappyaa 2016-04-12  
为什么不把xml源格式贴上来呢?鬼知道你写这一堆程序是为了解析什么样的xml啊!!!
1 楼 FlyAway2 2012-02-29  
有了Dom4j,JDom还有用吗?

相关推荐

    使用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...

    基于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

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

    用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数据,可以进一步提高代码的灵活性和效率。

    java 使用JDOM解析xml文件.docx

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

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

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

    利用JDOM解析xml文件

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

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

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

    Jdom解析XML

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

    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