- 由于以前在解析XML的时候,每次都要采用获取XML中的属性名来获取对应的值,每一个bean类都要写一个XML解析器。这将会使代码变得更加冗余,而没办法做到高度抽象。幸亏Java有自身的内省机制,Introspector与反射类似,主要是对Java Bean属性、方法等的一种处理方法。
- package com.ibm.cn.xml;
- import java.beans.BeanInfo;
- importjava.beans.Introspector;
- import java.beans.PropertyDescriptor;
- import java.io.File;
- importjava.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.Element;
- importorg.dom4j.io.SAXReader;
- /**
- * XML解析工具类
- * @author javamickey
- * @date 2012-11-01
- * @version 2.0
- */
- public class ParsersUtil {
- /**
- * 通过XML文件名,来解析XML对象,此函数只针对XML中存在一个bean值的情况
- * @paramfileName XML文件名
- * @param typebean类名
- * @return 单个bean对象
- * @throwsException
- */
- public static Object parserXMLByFileName(StringfileName, Class<?> type)
- throws Exception {
- Class<? extends Object>beanClass = Class.forName(type.getName());
- Object bean =beanClass.newInstance();
- File inputXml = new File(fileName);
- SAXReader saxReader = new SAXReader();
- try {
- Document document =saxReader.read(inputXml);
- Element element =document.getRootElement();
- BeanInfo beanInfo =Introspector.getBeanInfo(type);
- PropertyDescriptor[]propertyDescriptors = beanInfo.getPropertyDescriptors();
- for(PropertyDescriptor propertyDescriptor : propertyDescriptors) {
- StringpropertyName = propertyDescriptor.getName();
- for(Iterator<?> iterator = element.elementIterator(); iterator.hasNext();) {
- ElementemployeeElement = (Element) iterator.next();
- if(!propertyName.equals("class")) {
- MethodreadMethod = propertyDescriptor.getWriteMethod();
- Stringvalue = employeeElement.elementText(propertyName);
- System.out.println("propertyName="+ propertyName + "value = " + value);
- if(value != null) {
- readMethod.invoke(type,value);
- }
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return bean;
- }
- /**
- * 通过XML文件名,来解析XML对象,此函数针对XML中存在一个或者多个bean值的情况
- * @paramfileName XML文件名
- * @param typebean类名
- * @return 返回一个List<bean>
- * @throwsException
- */
- public static List<Object>parserXMLByFileNameList(String fileName, Class<?> type)
- throws Exception {
- Class<? extends Object>beanClass = Class.forName(type.getName());
- List<Object> beanList = newArrayList<Object>();
- File inputXml = new File(fileName);
- SAXReader saxReader = newSAXReader();
- try {
- Document document =saxReader.read(inputXml);
- Element element =document.getRootElement();
- BeanInfo beanInfo =Introspector.getBeanInfo(type);
- PropertyDescriptor[]propertyDescriptors = beanInfo.getPropertyDescriptors();
- for(Iterator<?> iterator = element.elementIterator(); iterator.hasNext();) {
- Objectbean = beanClass.newInstance();
- ElementemployeeElement = (Element) iterator.next();
- for(PropertyDescriptor propertyDescriptor : propertyDescriptors) {
- StringpropertyName = propertyDescriptor.getName();
- if(!propertyName.equals("class")) {
- MethodreadMethod = propertyDescriptor.getWriteMethod();
- Stringvalue = employeeElement.elementText(propertyName);
- System.out.println("propertyName="+ propertyName + "value = " + value);
- if(value != null) {
- readMethod.invoke(bean,value);
- }
- }
- }
- beanList.add(bean);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return beanList;
- }
- }
相关推荐
matlab液体湿润模拟,【水文模型】01 三水源新安江模型
目录一、概述1.1 流域概况1.2 产流方式论证1.3 设计基本任务1.4 设计原始资料二、新安江模型2.1 流域划分2.2 产汇流计算2.2.1 蒸散发计算2.2.2 产流计算2.2.3 水源划分2.2.4 汇流计算2.3 模型参数2.3.1 参数物理意义2.3.2 参数率定结果2.4 模拟结果2.4.1 精度统计表2.4.2 计算与实测流量过程线比较三、精度统计与误差分析3.1 精度统计3.2...
XML篇之XML解析
什么是xml解析XML 解析是指对 XML 文档进行解析,从而获取文档中的数据信息的过程。XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言。它和 HTML 相似,都是用标签来描述文档内容,但 XML 更加灵活和扩展,适用于存储和传输各种结构化数据。常见的 XML 应用包括 RSS、SOAP、Atom、SVG 等。XML 解析器是用于对 XML 文档进行解析的程序。XML 解析的方式一般有两种:DOM 解析和 SAX 解析。
用Arduino和RC522模块DIY一个NFC门禁卡复制器(附完整代码)
本文详细介绍了如何利用Arduino和RC522模块DIY一个NFC门禁卡复制器,包括硬件连接、软件配置、数据读写技术及完整代码实现。通过本教程,电子爱好者可以深入了解NFC技术,并构建自己的智能门禁系统,适用于家庭安全、办公场所等多种场景。
浅谈几款XML文档解析工具以及优缺点
<name>博客网站</name><desc>技术学习网站</desc>
用ADSP-21569+SigmaStudio打造音频处理系统:从硬件连接到实时调参实战
本文详细介绍了如何利用ADSP-21569 DSP芯片和SigmaStudio图形化编程工具构建高性能音频处理系统。从硬件接口配置、信号流设计到实时参数调试,提供工业级开发中的实用技巧,包括低延迟优化、动态参数插值等关键技术,帮助开发者快速实现专业音频处理方案。
想学嵌入式但没开发板?试试这个免费的STM32虚拟仿真平台(含LVGL界面教程)
本文介绍如何利用免费的STM32虚拟仿真平台学习嵌入式开发,特别适合预算有限或零硬件基础的学习者。通过详细的LVGL界面开发教程,展示虚拟仿真在嵌入式学习中的高效性和实用性,涵盖环境搭建、代码实现到实机迁移的全流程,助力快速掌握嵌入式开发核心技能。
Java中操作Xml使用备忘[ Hutool工具类XmlUtil、XStream ]
Java中操作Xml使用备忘
不用公网IP,如何在内网高效搭建RustDesk远程控制服务器?基于Windows Server 2019的完整实践
本文详细介绍了在Windows Server 2019上部署RustDesk远程控制服务器的完整实践方案,无需公网IP即可实现内网高效远程控制。从环境准备、基础服务安装到网络与安全配置,提供了零成本的私有化部署指南,适用于企业、校园等内网环境。
Java 解析xml文件-工具类
Java解析xml文件,对应的Javabean是根据xml中的节点来创建,如SeexmlZbomord、SeexmlIdoc等等。
基于OpenAI Agents构建多智能体工作流:从原理到实战
多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个智能体(Agent)的协作与交互,解决单一智能体难以处理的复杂任务。其核心原理在于将任务分解、分配与协调,每个智能体具备特定能力,通过通信机制实现信息共享与决策协同。在工程实践中,多智能体框架的价值在于提升任务处理效率、增强系统鲁棒性,并支持模块化开发。典型的应用场景包括自动化工作流编排、复杂问题求解以及人机协同交互。本文以OpenAI Agents SDK为例,深入探讨如何利用其提供的智能体(Agent)、会话(Ses
什么是 AIDV(AI 定义汽车):从软件定义到智能决策的范式革命
AI定义汽车(AIDV),是指以人工智能(尤其是大模型、深度学习、强化学习)为核心引擎,以车载AI芯片为算力底座,以“数据闭环”为迭代支撑,重构汽车感知、决策、执行全链路,实现“感知智能化、决策自主化、体验个性化、迭代自动化”的新一代智能汽车发展范式。其核心是让汽车从“执行工具”升级为“具备自主学习与智能决策能力的移动智能终端”,核心价值是“车与人的深度协同”与“复杂场景的自主适配”。
android xml数据解析工具类,android中解析xml文件的工具类XmlUtils
---------------------------------------------------------------------------------------------------------------------------------------------1,xmlUtil工具类package com.example.xmlpaserutil.util; import j...
华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)
华为OD机试 新系统真题【等距二进制判断】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【等距二进制判断】
java解析xml大文件工具类_xml解析工具类
创建一个xml解析工具类,了解其解析原理。全程使用封装思想。需求:创建一个xml解析工具类,通过用户指定的id值或者class文件路径判断其是否存在,如果存在就返回相对应的对象,如果不存在就返回null;需要用到的知识:【变量定义,数据类型转换,控制语句,循环,自定义方法,类的定义,多态,集合框架,IO流,异常体系,反射,xml解析等知识】工具类封装代码:package cn.yun.xmldom...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
java 解析xml 工具类_xml转bean+xml解析工具类实现 -- Java
手头正好需要一个xml转bean的工具和xml解析工具,网上实现很多,自己造一次轮子,一整套流程直接复制可用,一分钟实现转换加解析(xml转换使用idea实现,eclipse同样有工具,一搜一大把这里就不赘述了)。本文可转载,标注来源即可。1.xml转xsd1.1样例XML(persons.xml)chinaearthinvestigation1.2 利用idea将persons.xml生成per...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
Java对xml的生成及解析工具类
1、Jaxb工具类如下. import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import java.io.*; /**...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
xml解析的工具类
...
android xml数据解析工具类,Android开发中解析xml文件XmlUtils工具类与用法示例
本文实例讲述了Android开发中解析xml文件XmlUtils工具类与用法。分享给大家供大家参考,具体如下:1. xmlUtil工具类package com.example.xmlpaserutil.util;import java.io.InputStream;import java.lang.reflect.Field;import java.util.ArrayList;import ja...
java解析xml工具类
public class XmlUtils { /** * 解析xml数据 * */ public static Map<String,Object> parseXml(byte[] xmlBytes, String charset) { SAXReader reader = new SAXReader(false); ...
android中解析xml文件的工具类XmlUtils
--------------------------------------------------------------------------------------------------------------------------------------------- 1,xmlUtil工具类 package com.example.xmlpaserutil.util; imp
xml解析工具类
import java.io.ByteArrayInputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import ...
解析xml的工具类
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bin...
解析xml工具类
java解析xml工具类(SAXReader解析) 需要的jar包 需要的两个jar包 点我下载 http://download.youkuaiyun.com/download/weixin_39549656/10162229 工具类 XmlUtil.java(这个是工具类) public class XmlUtil { //定义解析器和文档对象 private SAXRe
5327



被折叠的 条评论
为什么被折叠?



