package xml.string;
import java.util.Date;
@SuppressWarnings("serial")
public class ItemDom4j implements java.io.Serializable {
private String item02;
private String item03;
private String item04;
private String item05;
private String item06;
private String item07;
private String item08;
private String item09;
private String item10;
public ItemDom4j() {
}
//get和set方法省略
}
package xml.string;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* xml格式字符串转换成为特定的对象
* @author zhanght
*
*/
public class FromStringToObj {
@SuppressWarnings({ "unchecked", "rawtypes" })
private static List FromxmlStrToObj(String xmlString){
List itemObjs = new ArrayList();
Document doc = null;
try {
doc = DocumentHelper.parseText(xmlString); //将字符串转换成为dom对象
Element rootElement = doc.getRootElement();//获取根节点
Iterator iterator = rootElement.elementIterator("tbclbizinterfacestandard"); //获取根节点下面的子节点
Class itemdom4j = Class.forName("xml.string.ItemDom4j");//类名
Object obj = null;//对象
Method method = null;//方法
while(iterator.hasNext()){
Element elet = (Element) iterator.next(); //tbclbizinterfacestandard节点
List<Element> list = elet.elements(); //tbclbizinterfacestandard下的子节点
String fieldName = "";
obj = itemdom4j.newInstance();
for(int i=0;i<list.size();i++){
fieldName = list.get(i).getName();//节点名称
Field field = itemdom4j.getDeclaredField(fieldName); //属性名称
Object type = field.getGenericType();//属性类型
String filedValue = elet.element(fieldName).getTextTrim();//属性值
String methodName = "set"+fieldName.replace(fieldName.charAt(0)+"",(fieldName.charAt(0)+"").toUpperCase()); //方法名称
if("class java.lang.String".equals(type.toString())){
method = itemdom4j.getMethod(methodName,String.class);
method.invoke(obj, filedValue);
}else if("class java.lang.Double".equals(type.toString())){
method = itemdom4j.getMethod(methodName,Double.class);
method.invoke(obj, Double.valueOf(filedValue));
}else if("class java.lang.Integer".equals(type.toString())){
method = itemdom4j.getMethod(methodName,Integer.class);
method.invoke(obj, Integer.valueOf(filedValue));
}else if("class java.lang.Long".equals(type.toString())){
method = itemdom4j.getMethod(methodName,Long.class);
method.invoke(obj, Long.valueOf(filedValue));
}
}
itemObjs.add(obj);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return itemObjs;
}
public static void main(String[] args) {
String xmlStr= "<standardlist>"+ "<tbclbizinterfacestandard>"+ "<item02>it02</item02><item03>it03</item03><item04>it04</item04><item05></item05>"+ "</tbclbizinterfacestandard>"+
"<tbclbizinterfacestandard>"+ "<item02>it21</item02><item03>it23</item03><item04>it24</item04><item05></item05>"+ "</tbclbizinterfacestandard>"+ "<tbclbizinterfacestandard>"+ "<item02>it31</item02><item03>it32</item03><item04>it33</item04><item05></item05>"+ "</tbclbizinterfacestandard>"+ "<tbclbizinterfacestandard>"+ "<item02>it41</item02><item03>it43</item03><item04>it44</item04><item05></item05>"+
"</tbclbizinterfacestandard>"+
"</standardlist>";
FromxmlStrToObj(xmlStr);
}
}
最近的项目中需要把xml格式的字符串转换成对象保存到List中,查看网上资料根据dom4j和反射完成.代码在附件中可以直接运行
分享到:
相关推荐
接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`解析器或`StAX (Streaming API for XML)`来解析XML。以下是一个使用`DOM`解析器将XML字符串转换为`Map`的示例: ```java import org.w3...
在Java编程中,我们经常需要将JSON格式的数据转换为Java对象,这通常涉及到将JSON字符串转化为List泛型。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
- 首先,使用`XmlDocument.Load()`或`XmlDocument.LoadXml()`方法加载XML文件或字符串。 - 然后,通过`SelectNodes()`或`SelectSingleNode()`方法获取XML节点列表,这将返回一个XmlNodeList对象。 - 最后,遍历...
将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map
该方法首先使用XMLSerializer将xml字符串转换为XML对象,然后使用JSONSerializer将XML对象转换为JSON对象。 map和json之间的转换 map和json之间的转换也可以通过使用json-lib库来实现。例如,mapToJson方法将Map...
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
实现 XML字符串转VO对象的实现 1.0:标签读取,属性读取,List类型标签实现 以下是 测试说明 原XML: <?xml version="1.0" encoding="UTF-8"?> <HEADER NAME="HEADERname" name_cn="头名称">标签text...
3. **创建Document对象**:使用DOM4J的`DocumentHelper`类的`parseText()`方法将XML字符串转换为`Document`对象。 ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....
当我们面临XML文档中存在嵌套子节点,并且希望将其解析为字符串时,JAXB提供了一种有效的方法。 首先,我们需要理解XML文档的基本结构。XML是一种可扩展标记语言,它通过标签来定义元素和数据,允许数据以层次结构...
在Java开发中,有时我们需要将Java Bean对象转换成XML字符串,以便于数据交换或存储。XStream库就是这样一个工具,它提供了一种简单且高效的方式来实现这个目标。XStream不仅能够将Java对象转换为XML,还可以反向将...
标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...
使用JAXB,我们可以很容易地将XML字符串或文件转换为相应的Java对象列表。以下是一个示例方法: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind....
`T`代表你想要存储的对象类型,例如`List<int>`表示存储整数的列表,`List<string>`则表示字符串列表。 **方法一:使用XmlNodeReader** 第一种方法是通过`XmlNodeReader`来逐个读取XML节点,并将其转化为指定的...
本文将详细介绍如何在 Java 中将 List 和 Object 类型的数据转换成 JSON 格式字符串,并通过一个具体的示例来演示整个过程。 #### 一、JSON 的基本概念 JSON 是一种数据交换格式,它基于 JavaScript 的语法但独立...
在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔的字符串"tag1,tag2,tag3"传入,我们可以在Java代码中将其分割并存入List。 接...
除了默认的行为,XStream还允许自定义XML输出的格式。例如,你可以通过设置`alias`来重命名XML元素,或者使用`omitField`来忽略某些字段。这在需要控制XML结构以符合特定规范或者提高可读性时非常有用。 在处理复杂...
"<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?>"<IbpsBankCodeConf>" + " <ibps code='322'>" + " 测试银行' ECFlag='2' paySysBankCode='322290000011' eisBankCode='null' eisSiteCode='1' /...
// 把JSON字符串转换为JAVA对象数组 JSONArray json = JSONArray.fromObject(personStr); List<InvoidPerson> persons = (List) JSONArray.toCollection(json, InvoidPerson.class); ``` #### 4. JSON字符串转换为...
C#将List与xml互转 支持简单类型 list转xml xml转list