`
静坐云端上的人
  • 浏览: 13695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xml格式的字符串转换成List

    博客分类:
  • List
阅读更多
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和反射完成.代码在附件中可以直接运行
分享到:
评论

相关推荐

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`解析器或`StAX (Streaming API for XML)`来解析XML。以下是一个使用`DOM`解析器将XML字符串转换为`Map`的示例: ```java import org.w3...

    json字符串转化为list泛型

    在Java编程中,我们经常需要将JSON格式的数据转换为Java对象,这通常涉及到将JSON字符串转化为List泛型。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    Xml转换为集合list实例代码.rar

    - 首先,使用`XmlDocument.Load()`或`XmlDocument.LoadXml()`方法加载XML文件或字符串。 - 然后,通过`SelectNodes()`或`SelectSingleNode()`方法获取XML节点列表,这将返回一个XmlNodeList对象。 - 最后,遍历...

    java将xml串转换成Map类型

    将xml串转换成Map类型,如果有重复节点,自动转换为list类型存储,所以最终转换并非绝对Map

    java转换xml、list、map和json

    该方法首先使用XMLSerializer将xml字符串转换为XML对象,然后使用JSONSerializer将XML对象转换为JSON对象。 map和json之间的转换 map和json之间的转换也可以通过使用json-lib库来实现。例如,mapToJson方法将Map...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    2017XML字符串转对象Object 实现工具

    实现 XML字符串转VO对象的实现 1.0:标签读取,属性读取,List类型标签实现 以下是 测试说明 原XML: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;HEADER NAME="HEADERname" name_cn="头名称"&gt;标签text...

    xml字符串解析

    3. **创建Document对象**:使用DOM4J的`DocumentHelper`类的`parseText()`方法将XML字符串转换为`Document`对象。 ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....

    JAVA JAXB 解析XML嵌套子节点为字符串

    当我们面临XML文档中存在嵌套子节点,并且希望将其解析为字符串时,JAXB提供了一种有效的方法。 首先,我们需要理解XML文档的基本结构。XML是一种可扩展标记语言,它通过标签来定义元素和数据,允许数据以层次结构...

    将对象(java bean)转换为xml字符串

    在Java开发中,有时我们需要将Java Bean对象转换成XML字符串,以便于数据交换或存储。XStream库就是这样一个工具,它提供了一种简单且高效的方式来实现这个目标。XStream不仅能够将Java对象转换为XML,还可以反向将...

    解析Json字符串直接转换为对象(包括多层List集合 嵌套)所用jar包

    标题和描述提及的是将JSON字符串转换为Java对象,特别是涉及多层嵌套和List集合的情况。这在处理复杂数据结构时非常常见,比如服务器返回的响应可能包含嵌套的对象和数组。下面我们将详细介绍如何使用Jackson库来...

    java XML转成LIST可以转成指定的类数组

    使用JAXB,我们可以很容易地将XML字符串或文件转换为相应的Java对象列表。以下是一个示例方法: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind....

    C# xmlToList xml转换成对象

    `T`代表你想要存储的对象类型,例如`List&lt;int&gt;`表示存储整数的列表,`List&lt;string&gt;`则表示字符串列表。 **方法一:使用XmlNodeReader** 第一种方法是通过`XmlNodeReader`来逐个读取XML节点,并将其转化为指定的...

    ajax json java 用法 json 将List、Object转换为Json格式字符串

    本文将详细介绍如何在 Java 中将 List 和 Object 类型的数据转换成 JSON 格式字符串,并通过一个具体的示例来演示整个过程。 #### 一、JSON 的基本概念 JSON 是一种数据交换格式,它基于 JavaScript 的语法但独立...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔的字符串"tag1,tag2,tag3"传入,我们可以在Java代码中将其分割并存入List。 接...

    XStream:Object与Xml字符串 互相转换

    除了默认的行为,XStream还允许自定义XML输出的格式。例如,你可以通过设置`alias`来重命名XML元素,或者使用`omitField`来忽略某些字段。这在需要控制XML结构以符合特定规范或者提高可读性时非常有用。 在处理复杂...

    解析xml数组,配置好节点IbpsBankCodeConf/ibps/ibp和xml字符串即可转换成List<Map<?,?>>

    "&lt;?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"yes\"?&gt;"&lt;IbpsBankCodeConf&gt;" + " &lt;ibps code='322'&gt;" + " 测试银行' ECFlag='2' paySysBankCode='322290000011' eisBankCode='null' eisSiteCode='1' /...

    JSON 字符串 与 java 对象的转换

    // 把JSON字符串转换为JAVA对象数组 JSONArray json = JSONArray.fromObject(personStr); List&lt;InvoidPerson&gt; persons = (List) JSONArray.toCollection(json, InvoidPerson.class); ``` #### 4. JSON字符串转换为...

    C#将List与xml互转 支持简单类型

    C#将List与xml互转 支持简单类型 list转xml xml转list

Global site tag (gtag.js) - Google Analytics