`
mquv_site
  • 浏览: 41034 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java解析xml 工具类

    博客分类:
  • java
阅读更多

解析xml 工具 做个笔记

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

public class XmlUtil {
	private static Logger log = Logger.getLogger(XmlUtil.class);
	
	public final static String DEFAULT_ID_KEY = "defalut";
	
	public final static String ID = "id";
	
	/**
	 * 初始化 filePath 指定的 XML 文件
	 * 
	 * @param filePath
	 * @return
	 * @throws Exception
	 */
	public static Map<String,Map<String,String>> loadXml(String filePath) throws Exception {
		return loadXml(new FileInputStream(filePath));
	}
	
	/**
	 * 初始化 InputStream 指定的 XML 输入流
	 * 
	 * @param in
	 * @return
	 * @throws Exception
	 */
	public static Map<String,Map<String,String>> loadXml(InputStream in) throws Exception {
		Map<String,Map<String,String>> configMap = new HashMap<String,Map<String,String>>();
		try {
			SAXBuilder sb = new SAXBuilder();
			Document doc = sb.build(in);
			Element root = doc.getRootElement();
			List rootList = root.getChildren();
			for (int i = 0; i < rootList.size(); i++) {
				Element rootEle = (Element) rootList.get(i);
				List childList = rootEle.getChildren();
				if (childList != null && childList.size() > 0) {
					Attribute attribute = rootEle.getAttribute(ID);
					String idValue = null;
					if (attribute == null) {
						idValue = DEFAULT_ID_KEY;
					} else {
						idValue = attribute.getValue();
					}
					if (idValue == null || "".equals(idValue)) {
						idValue = DEFAULT_ID_KEY;
					}
					Map<String,String> itemMap = null;
					if (configMap.containsKey(idValue)) { // 如果已经存在 Map
						itemMap = configMap.get(idValue);
					} else { // 如果不存在就新建
						itemMap = new HashMap<String,String>();
						configMap.put(idValue, itemMap);
					}
					for (int j = 0; j < childList.size(); j++) {
						Element childEle = (Element) childList.get(j);
						Attribute childAttribute = childEle.getAttribute(ID);						
						String idKey = null;
						if (childAttribute == null) {
							idKey = DEFAULT_ID_KEY;
						} else {
							idKey = childAttribute.getValue();
						}
						itemMap.put(idKey, childEle.getText());
					}
					
					
				}
			}
			log.info("初始化 XML 配置文件成功");
		} catch (Exception ex) {
			log.error("初始化 XML 配置文件失败,原因:" + ex);
			throw ex;
		}
		return configMap;
	}
}

 

分享到:
评论

相关推荐

    java xml解析工具类 java xml解析工具类

    java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...

    Java解析XML工具类--(java源码)

    * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...

    java 解析xml 多级

    在实际项目中,为了提高效率和易用性,可以封装这些解析逻辑到一个类或者工具类中,提供统一的接口供其他部分代码调用。同时,考虑到性能和资源消耗,对于非常大的XML文件,可能需要考虑使用SAX解析或者StAX...

    java通用解析XML工具类

    为了处理XML文档,Java提供了多种解析XML的方法,包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在...

    XmlUtils.java XML解析工具类

    XML解析工具类

    java一键xml转map,一键map转xml工具类

    在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来解析XML文档,然后遍历DOM树,将其节点转化为Map。例如,每个XML元素的标签名作为键,元素的文本内容作为值。如果元素...

    java解析xml生成json对象

    在Java编程环境中,XML(可...总的来说,Java解析XML生成JSON对象的能力使得数据在不同平台和应用间无缝交换成为可能。通过学习和使用这样的工具类,开发者可以更高效地处理XML数据,并将其集成到基于JSON的系统中。

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    XML解析工具类

    在Java中,`javax.xml.parsers.DocumentBuilderFactory` 和 `org.w3c.dom.Document` 是使用DOM解析XML的主要类。 2. **SAX解析器** SAX(Simple API for XML)是一种基于事件驱动的解析方式,它不将整个XML文档...

    java Dom4j 无敌连环解析XML工具类

    在本教程中,我们将深入探讨如何使用DOM4J来解析XML文件,并创建一个无敌连环解析工具类。 首先,我们需要了解XML的基本概念。XML(可扩展标记语言)是一种标记语言,常用于数据交换和存储。它的结构化特性使其非常...

    java的xml和json相互转换工具类,直接用

    实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~

    java的xml和json相互转换工具类,亲测直接用

    本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...

    Java解析XML.zip

    本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...

    java解析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解析XML详解

    本文将深入探讨Java解析XML的各种方法及其应用场景,旨在为读者提供全面而深入的理解。 ### Java解析XML的主要方法 #### 1. DOM(Document Object Model) DOM是一种树形结构的数据模型,用于表示XML文档的结构。...

    xml解析工具类

    本教程将详细介绍一个名为"WXML"的XML解析工具类,该工具类能便捷地将XML数据转换为Java对象,从而简化开发流程。 首先,XML解析分为两种主要方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM...

    Java解析xml所需jar包

    在这个场景中,提到的两个关键库是`dom4j`和`jdom`,它们都是Java解析XML的重要工具。 **dom4j** dom4j是一个非常灵活且功能丰富的Java XML API,它提供了对DOM(文档对象模型),SAX(简单API for XML)和JDOM的...

    详 解Java解析XML

    以下是一个简单的DOM解析XML的例子: ```java import javax.xml.parsers.*; import org.w3c.dom.*; import java.io.*; public class DOMExample { public static void main(String[] args) { try { ...

    JAVA调用webservice并解析xml

    在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...

    JDOM解析XML

    JDOM,全称Java Document Object Model,是专门为Java设计的一个解析XML的API,它提供了方便的构建和操作XML文档的方法。 JDOM的优势在于它完全基于Java,因此可以充分利用Java的强大功能,如异常处理、内存管理等...

Global site tag (gtag.js) - Google Analytics