`
weigang.gao
  • 浏览: 485907 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

dom4j解析XML简单例子(-)

 
阅读更多
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Before;
import org.junit.Test;

public class TestDom4j {
	
	private String requestXML = null;
	
	@Before
	public void before() throws IOException{
		/**
		 * 将文件中 转换为 字符串
		 */
		File file = new File("D:\\xmls\\request.xml"); 
		FileReader reader = new FileReader(file);//字符流
		//缓冲字符流
		BufferedReader bufferedReader = new BufferedReader(reader);
		
		String line = "";
		StringBuffer str = new StringBuffer();
		while((line = bufferedReader.readLine()) != null){
			str.append(line);
		}
		requestXML = str.toString();
//	   requestXML = "<?xml version=\"1.0\" encoding=\"GBK\"?>"+
//					"<request version=\"1.0\">"+
//					"<system>"+
//					"<sysid>ESS</sysid>"+
//					"<uid>ESS0025</uid>"+
//					"<servicename>AEGON_WS_ESS_USER_LOGIN</servicename>"+
//					"</system>"+
//					"<queryinfo>"+
//					"<filed name=\"STATUS\">1</filed>"+
//					"<filed name=\"ERRORMASSAGE\"/>"+
//					"<filed name=\"RESULTTYPE\"/>"+
//					"<filed name=\"PATH\"/>"+
//					"<filed name=\"RESULTCOUNT\">0</filed>"+
//					"<filed name=\"TIME\">2014-05-06 14:52:34</filed>"+
//					"</queryinfo>"+
//					"<query>"+
//					"<filed name=\"name\" type=\"String\">李俊华</filed>"+
//					"<filed name=\"sNumber\" type=\"String\">888888888</filed>"+
//					"<filed name=\"password\" type=\"String\">gaoweigang</filed>"+
//					"</query>"+
//					"</request>";
		
	}
	
	
	/**
	 * 将xml封装到Map中
	 * @throws DocumentException 
	 */
	@Test
	public void testParseXmlToMap() throws DocumentException{
		//定义封装XML中query信息的map
		Map<String, String> map = new HashMap<String, String>();
		
		Document document = DocumentHelper.parseText(requestXML);
		//获取root元素
		Element rootElement = document.getRootElement();
		System.out.println(rootElement.getName());//获取根元素的名字:request
		
		//遍历rootElement元素的直接子元素(注意:不会遍历间接子元素)
		for(Iterator i = rootElement.elementIterator(); i.hasNext();){
			//获取根元素直接子元素directChildElement
			Element directChildElement = (Element)i.next();
			//遍历directChildElement元素的直接子元素
			if("query".equals(directChildElement.getName()))
					for(Iterator j = directChildElement.elementIterator(); j.hasNext();){
						Element element = (Element)j.next();
						if("filed".equals(element.getName())){
							
							String key = element.attributeValue("name");
							System.out.println(key);//name, sNumber, password
							
							String value = element.getText();
							System.out.println(value);//李俊华, 88888888, gaoweigang
							
							map.put(key, value);//把数据封装到Map中
						}
						
					}
		}
		
	}
	@Test
	public void testXMLToMap() throws IOException, DocumentException{
		Map<String,String> map = new HashMap<String, String>();
		
		File file = new File("D:\\xmls\\request.xml");
		SAXReader reader = new SAXReader();
		Document document = reader.read(file);
		//获取根元素
		Element  rootElement = document.getRootElement();
		
		//遍历根元素的直接子元素
		for(Iterator i = rootElement.elementIterator(); i.hasNext();){
			Element directChildElement = (Element)i.next();
			if("query".equals(directChildElement.getName())){
				for(Iterator j = directChildElement.elementIterator(); j.hasNext();){
					Element element = (Element)j.next();
					if("filed".equals(element.getName())){
						String key = element.attributeValue("name");
						System.out.println(key);
						String value = element.getText();
						System.out.println(value);
						map.put(key, value);//将数据封装到Map
					}
				}
				
			}
		}
		
	}
}

 

分享到:
评论

相关推荐

    java dom4j解析xml

    - 以下是一个简单的DOM4J解析XML的例子: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String...

    java dom4j 解析xml的例子,可用

    1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    dom4j 解析xml例子

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

    Dom4j解析XML(例子)+Dom4j 使用简介

    **Dom4j解析XML(例子)+Dom4j 使用简介** Dom4j是一个强大的Java库,专门用于处理XML文档。它提供了灵活且易于使用的API,使得XML的读取、写入、遍历和修改变得简单。在本文中,我们将深入探讨Dom4j的主要功能和用法...

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

    在TestDom4j项目中,可能包含一个简单的Java程序,演示了如何使用Dom4j解析XML文件、查找特定元素、修改元素内容,并将结果写回XML。这个例子对于初学者来说非常有帮助,因为它展示了Dom4j在实际应用中的基本用法。...

    dom4j解析xml.txt

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...

    dom4j解析xml,连接oracle数据库

    在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...

    dom4j解析xml例子

    这个“dom4j解析xml例子”压缩包应该包含了一些示例代码、帮助文档和使用说明,旨在帮助初学者快速理解和应用DOM4J。 在XML解析领域,DOM(Document Object Model)是一种将XML文档转换为内存对象树的方法。DOM4J是...

    Java使用sax、dom、dom4j解析xml文档

    以下是一个DOM4J解析XML的简单示例: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String[] args) {...

    用dom4j解析xml小例子

    一、DOM4J解析XML的基本步骤 1. 导入DOM4J库:首先,你需要在项目中引入DOM4J库。如果这是一个Java项目,你可能已经从压缩包中包含了所需的jar文件,如dom4j-1.6.1.jar。 2. 创建Document对象:解析XML文件的第一...

    Dom4j遍历解析XML

    ### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷的方式来解析、创建以及操作XML文档。相较于其他XML解析库...

    Dom4j解析配置文件与xml小例子

    本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...

    dom4j 解析xml文件小例子

    在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible Markup Language)的基本概念。XML是一种标记语言,用于存储和传输数据,具有自描述性和结构化的特点,广泛应用于网络...

    使用dom4j和jaxen解析xml

    - **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...

    dom4j解析xml文件的例子

    在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...

    dom4j解析xml

    DOM解析XML的方式是将整个XML文档加载到内存中,形成一棵完整的树,然后可以通过遍历这棵树来访问和修改XML的内容。 在给出的例子中,我们看到以下步骤: 1. 首先,创建`DocumentBuilderFactory`实例,它是用于...

    dom4j操作XMl例子

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

    用dom4j操作xml的例子

    - **灵活性**:DOM4J提供了灵活的API,使得操作XML文档变得简单。 - **效率**:虽然DOM4J使用DOM模型,但通过优化实现了相对较高的性能。 - **兼容性**:除了SAX和DOM,DOM4J还支持StAX和JDOM等其他解析器,具有...

Global site tag (gtag.js) - Google Analytics