dom4j解析xml字符串_hanCSDN_20130225

来源:互联网 发布:支付宝对淘宝的帮助 编辑:程序博客网 时间:2024/05/22 20:33
package com.dom4j.analyzer;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import com.dom4j.bean.IvrParamsBean;public class Dom4jAnalyzer {// 根据xml字符串解析成对象@SuppressWarnings({ "unchecked", "rawtypes" })public static Object analyzer(Class c, String xml) {Object targetObj = null;try {//初始化目标BeantargetObj = c.newInstance();} catch (InstantiationException e1) {e1.printStackTrace();} catch (IllegalAccessException e1) {e1.printStackTrace();}try {Document document = DocumentHelper.parseText(xml);Element root = document.getRootElement();List<Element> elements = root.elements();//遍历解析xml字符串,一层结构的for(int i=0;i<elements.size();i++){Element element = elements.get(i);//填充BeanFillInToBean.fillIntoBean(c, targetObj, element.getName(), element.getText());}return targetObj;} catch (DocumentException e) {e.printStackTrace();}return null;}}

package com.dom4j.analyzer;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import com.dom4j.common.WordCaseChange;public class FillInToBean {public static void fillIntoBean(Class c, Object obj, String paramName,String paramValue) {try {//根据反射,使用setXxx方法设置Bean的属性Method method = c.getDeclaredMethod("set" + WordCaseChange.toUpperCaseFirstOne(paramName), String.class);method.invoke(obj, paramValue);} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}}}

package com.dom4j.common;public class WordCaseChange {//首字母转小写public static String toLowerCaseFirstOne(String s)    {        if(Character.isLowerCase(s.charAt(0)))            return s;        else            return (new StringBuilder()).append(Character.toLowerCase(s.charAt(0))).append(s.substring(1)).toString();    }//首字母转大写    public static String toUpperCaseFirstOne(String s)    {        if(Character.isUpperCase(s.charAt(0)))            return s;        else            return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString();    }}

原创粉丝点击