解析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解析...
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
在实际项目中,为了提高效率和易用性,可以封装这些解析逻辑到一个类或者工具类中,提供统一的接口供其他部分代码调用。同时,考虑到性能和资源消耗,对于非常大的XML文件,可能需要考虑使用SAX解析或者StAX...
为了处理XML文档,Java提供了多种解析XML的方法,包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在...
XML解析工具类
在Java中,我们可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来解析XML文档,然后遍历DOM树,将其节点转化为Map。例如,每个XML元素的标签名作为键,元素的文本内容作为值。如果元素...
在Java编程环境中,XML(可...总的来说,Java解析XML生成JSON对象的能力使得数据在不同平台和应用间无缝交换成为可能。通过学习和使用这样的工具类,开发者可以更高效地处理XML数据,并将其集成到基于JSON的系统中。
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
在Java中,`javax.xml.parsers.DocumentBuilderFactory` 和 `org.w3c.dom.Document` 是使用DOM解析XML的主要类。 2. **SAX解析器** SAX(Simple API for XML)是一种基于事件驱动的解析方式,它不将整个XML文档...
在本教程中,我们将深入探讨如何使用DOM4J来解析XML文件,并创建一个无敌连环解析工具类。 首先,我们需要了解XML的基本概念。XML(可扩展标记语言)是一种标记语言,常用于数据交换和存储。它的结构化特性使其非常...
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...
本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...
以下是一个简单的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的主要方法 #### 1. DOM(Document Object Model) DOM是一种树形结构的数据模型,用于表示XML文档的结构。...
本教程将详细介绍一个名为"WXML"的XML解析工具类,该工具类能便捷地将XML数据转换为Java对象,从而简化开发流程。 首先,XML解析分为两种主要方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM...
在这个场景中,提到的两个关键库是`dom4j`和`jdom`,它们都是Java解析XML的重要工具。 **dom4j** dom4j是一个非常灵活且功能丰富的Java XML API,它提供了对DOM(文档对象模型),SAX(简单API for XML)和JDOM的...
以下是一个简单的DOM解析XML的例子: ```java import javax.xml.parsers.*; import org.w3c.dom.*; import java.io.*; public class DOMExample { public static void main(String[] args) { try { ...
在IT行业中,调用Web服务并解析XML是常见的任务,特别是在Java开发中。Web服务,尤其是基于SOAP(Simple Object Access Protocol)的,提供了一种标准的跨平台、跨语言的数据交换方式。本教程将深入讲解如何在Java...
JDOM,全称Java Document Object Model,是专门为Java设计的一个解析XML的API,它提供了方便的构建和操作XML文档的方法。 JDOM的优势在于它完全基于Java,因此可以充分利用Java的强大功能,如异常处理、内存管理等...