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的使用方法和实现原理,希望能够为大家提供有价值的...
XmlUtils JS操作XML工具类 ** * 加载xml文件,参数: * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *
xml2bean
本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在项目中复用和简化XML处理。 首先,我们来看DOM解析方式。DOM解析器会将整个XML文档加载到内存中,形成一棵树形结构,便于对XML进行随机访问。以下是一...
这个XMLUtil工具类包含了解析XML文件、获取根元素、读取属性值、遍历子元素以及使用XPath查找元素等常用操作。你可以根据实际需求扩展此工具类,添加更多的功能,例如创建新的XML文档、修改现有元素等。 使用这个...
提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。
3. **映射配置**:XMLUtil允许开发者定义XML节点和Java类属性之间的映射规则,以适应不同的XML结构。这种灵活性使得XMLUtil可以处理各种复杂的XML布局。 4. **类型转换**:XMLUtil内置了对基本Java类型和常用复杂...
在实际项目中,为了提高效率和易用性,可以封装这些解析逻辑到一个类或者工具类中,提供统一的接口供其他部分代码调用。同时,考虑到性能和资源消耗,对于非常大的XML文件,可能需要考虑使用SAX解析或者StAX...
本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下: 1. xmlUtil工具类 package com.example.xmlpaserutil.util; import java.io.InputStream; import java.lang....
提供2个方法: (1)XMLUtil.getValue(String tag,String attr); 获取指定tag的指定attr的值。...两个函数的返回值是ArrayList,每个XMLResult包括获得的值/内容,对应tag在整个xml结构中的位置。 复出了,请大家支持。
XmlUtil工具类简化了XML的读写操作,可以方便地解析XML文档,获取节点信息。例如,获取XML文件的根节点: ```java Element root = XmlUtil.getRootElement(new File("xml文件路径")); ``` 综上所述,Hutool作为...
Unity XML解析工具是一种在Unity引擎中处理XML数据的方法,它允许开发者从XML文件中提取信息并将其存储到合适的数据结构中,例如字典集合。XML(eXtensible Markup Language)是一种广泛使用的标记语言,用于存储和...
在ASP.NET开发中,工具类扮演着至关重要的角色,它们为开发者提供了便利的功能,提高了代码的可重用性和效率。以下是一些常见的ASP.NET工具类及其详细知识点: 1. **字符串处理**: - `StringUtil`:这个类通常...
综上所述,“desktop and xmlutil”这个主题涵盖了XML在Java桌面应用中的使用,特别是通过自定义的XmlUtil工具类进行XML操作的相关知识。通过阅读博客和分析XmlUtil的源码,开发者能提升对XML处理的理解和实践能力。
自用JAXB工具类,java内置,比XSteam快一倍多,内容比较齐全,下载即用,傻瓜式导入
XML工具类在编程中常用于解析、创建或操作XML文档,比如提取特定数据、验证数据格式等。 MD5,全称消息摘要算法第五版,是由Ron Rivest开发的一种单向散列函数。它将任意长度的数据转化为固定长度的输出,通常是32...
描述中的其他两个工具类可能包含了处理这些复杂情况的代码,但具体实现需要根据实际XML结构进行调整。 5. **自定义转换逻辑**:在处理复杂XML时,可能需要编写自定义的转换逻辑。例如,当XML节点对应于Java对象的...
XML工具类(如`XmlUtil`)处理XML文档的解析、生成和修改,常用于配置文件或数据交换。 总结,这些Java工具类集成了开发中常见的实用功能,通过封装和优化标准库,使得开发者能更高效地完成各种任务。随着项目的...