`
uule
  • 浏览: 6352185 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

XML工具类XmlUtil

 
阅读更多
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class XmlUtil {
	private static final Logger logger = Logger.getLogger(XmlUtil.class);
	
	/**
	 * 获得根据节点信息
	 * @param xml				xml字符串
	 * @return
	 */
	public static Element getRootElement(String xml){
		Document doc = null;
		Element root = null;
		
		try {
			doc = DocumentHelper.parseText(xml); 
			root = doc.getRootElement();
			
		} catch (Exception ex) {
			// TODO: handle exception
			logger.error("解释xml文件出现异常:" + ex.getMessage());
		}
		return root;
	} 
	
	/**
	 * 获得指定元素下所有节点属性及值
	 * @param element
	 * @return
	 */
	public static Map getNodeValues(Element element){
		Element root = null;
		Map map = new HashMap();
		try {
			List list = element.elements();
			Element e = null;
			for (int i = 0; i < list.size(); i++) {
				e = (Element)list.get(i);
				map.put(e.getName(), e.getText());
			}			
		} catch (Exception ex) {
			// TODO: handle exception
			logger.error("获得指定元素下所有节点属性及值出现异常: " + ex.getMessage());
		}
		return map;
	} 
	
	/**
	 * 获得指定节点指定属性值
	 * @param element					元素名称
	 * @param attributeName				属性名称
	 * @return
	 */
	public static String getElementAttributeValue(Element element,String attributeName){
		String value = "";
		try {
			value = element.attributeValue("attributeName");
		} catch (Exception ex) {
			// TODO: handle exception
			logger.error("获得指定节点指定属性值出现异常: " + ex.getMessage());
		}
		return value;
	}
	
	
	public static void main(String[] args) {
		try {
			String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Response><Result>0</Result><Mo num=\"2\"><Item id=\"1\" content=\"上行01\" from_mobile=\"13500000000\" to_port=\"0001\" rec_time=\"2013-07-20 13:23:45\"/><Item id=\"2\" content=\"上行02\" from_mobile=\"13600000000\" to_port=\"0002\" rec_time=\"2013-07-20 13:23:45\"/></Mo></Response >";
			Map map = XmlUtil.getNodeValues(XmlUtil.getRootElement(xml));
			String result = (String)map.get("Result");
			System.out.println("result = " + result );
			
			Element mo = XmlUtil.getRootElement(xml).element("Mo");
			System.out.println("mo = " + mo);
			int num = Integer.parseInt(mo.attributeValue("num"));
			System.out.println("size = " + num);
			Element item = null;
			List list = mo.elements();
			
			for (int i = 0; i < list.size(); i++) {
				item = (Element)list.get(i);
				System.out.println("id = " + item.attributeValue("id") + " content = " + item.attributeValue("content") + " from_mobile = " + item.attributeValue("from_mobile") + " to_port = " + item.attributeValue("to_port") + " rec_time = " + item.attributeValue("rec_time"));
			}
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("ERROR:" + e.getMessage());
		}

	}

}

 

分享到:
评论

相关推荐

    Java操作XML工具类XmlUtil详解

    Java操作XML工具类XmlUtil详解 Java操作XML工具类XmlUtil是Java中一个非常重要的工具类,它提供了许多实用的方法来操作XML文件。在本文中,我们将详细介绍XmlUtil的使用方法和实现原理,希望能够为大家提供有价值的...

    JS操作XML工具类XmlUtils

    XmlUtils JS操作XML工具类 **  * 加载xml文件,参数:  * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *

    xmlutil XMl工具类

    xml2bean

    java通用解析XML工具类

    本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在项目中复用和简化XML处理。 首先,我们来看DOM解析方式。DOM解析器会将整个XML文档加载到内存中,形成一棵树形结构,便于对XML进行随机访问。以下是一...

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

    这个XMLUtil工具类包含了解析XML文件、获取根元素、读取属性值、遍历子元素以及使用XPath查找元素等常用操作。你可以根据实际需求扩展此工具类,添加更多的功能,例如创建新的XML文档、修改现有元素等。 使用这个...

    Java,一个XML工具类

    提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。

    XMLUtil java XML orm toolkit

    3. **映射配置**:XMLUtil允许开发者定义XML节点和Java类属性之间的映射规则,以适应不同的XML结构。这种灵活性使得XMLUtil可以处理各种复杂的XML布局。 4. **类型转换**:XMLUtil内置了对基本Java类型和常用复杂...

    java 解析xml 多级

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

    Android开发中解析xml文件XmlUtils工具类与用法示例

    本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下: 1. xmlUtil工具类 package com.example.xmlpaserutil.util; import java.io.InputStream; import java.lang....

    Java一个XML工具类

    提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。

    hutool一个Java基础工具类

    XmlUtil工具类简化了XML的读写操作,可以方便地解析XML文档,获取节点信息。例如,获取XML文件的根节点: ```java Element root = XmlUtil.getRootElement(new File("xml文件路径")); ``` 综上所述,Hutool作为...

    unity xml解析工具

    Unity XML解析工具是一种在Unity引擎中处理XML数据的方法,它允许开发者从XML文件中提取信息并将其存储到合适的数据结构中,例如字典集合。XML(eXtensible Markup Language)是一种广泛使用的标记语言,用于存储和...

    asp.net常用工具类

    在ASP.NET开发中,工具类扮演着至关重要的角色,它们为开发者提供了便利的功能,提高了代码的可重用性和效率。以下是一些常见的ASP.NET工具类及其详细知识点: 1. **字符串处理**: - `StringUtil`:这个类通常...

    desktop and xmlutil

    综上所述,“desktop and xmlutil”这个主题涵盖了XML在Java桌面应用中的使用,特别是通过自定义的XmlUtil工具类进行XML操作的相关知识。通过阅读博客和分析XmlUtil的源码,开发者能提升对XML处理的理解和实践能力。

    自用JAXB工具类,String类型XML和node节点和java类互转

    自用JAXB工具类,java内置,比XSteam快一倍多,内容比较齐全,下载即用,傻瓜式导入

    xml+MD5.rar

    XML工具类在编程中常用于解析、创建或操作XML文档,比如提取特定数据、验证数据格式等。 MD5,全称消息摘要算法第五版,是由Ron Rivest开发的一种单向散列函数。它将任意长度的数据转化为固定长度的输出,通常是32...

    xml转对象封装的简单与复杂xml的转化写法

    描述中的其他两个工具类可能包含了处理这些复杂情况的代码,但具体实现需要根据实际XML结构进行调整。 5. **自定义转换逻辑**:在处理复杂XML时,可能需要编写自定义的转换逻辑。例如,当XML节点对应于Java对象的...

    Java工具类

    XML工具类(如`XmlUtil`)处理XML文档的解析、生成和修改,常用于配置文件或数据交换。 总结,这些Java工具类集成了开发中常见的实用功能,通过封装和优化标准库,使得开发者能更高效地完成各种任务。随着项目的...

Global site tag (gtag.js) - Google Analytics