xml字符串标签为soapenv:Envelope转为javaBean实体xml 字符串标签为 soapenv:Envelope 转为 javaBean实体
此⽅法 转换 得调试,可采⽤ 截取⽅式 ⽅式 拿到xml 对应Javabean 绕过 soapenv:Envelope标签
package com.l.ddbx;
import java.io.ByteArrayInputStream;
import flect.Field;
import flect.Method;
SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
xml标签大全l.parsers.DocumentBuilder;
l.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class SoapUtil {
/**
* 解析XML转换为Object
* @param strXML xml字符串
* @param elementName 解析根标签名
* @param className 类名全路径(包名+类名)
* @return
*/
public static List<Object>parseObject(String strXML,String elementName,String className){
List<Object> list=new ArrayList<Object>();
DocumentBuilderFactory wInstance();
DocumentBuilder builder=null;
try{
wDocumentBuilder();
Document doc=builder.parse(new Bytes("utf-8")));
NodeList ElementsByTagName(elementName);
for(int i=0;i&Length();i++){
Node node=nodelist.item(i);
NodeList ChildNodes();
Object bean=Class.forName(className).newInstance();
Class<?> Class();
Method methods[]=DeclaredMethods();
Field fields[]=DeclaredFields();
for(int j=0;j&Length();j++)
{
Node chnode=chlist.item(j);
if(chnode instanceof Element)
{
/
/System.out.NodeName()+","+TextContent());
for(Field field:fields)
{
String Name();
if(fieldName.NodeName())){
String Type().getSimpleName();
String setMethod=pareSetName(fieldName);
if(!checkMethod(methods,setMethod))
{
continue;
}
Object TextContent();
Method Method(Type());
if(null != value)
{
if("String".equals(fldtype))
{
method.invoke(String());
}
else if("Date".equals(fldtype))
{
Date temp=String());
method.invoke(bean,temp);
}
else if("Integer".equals(fldtype)||"int".equals(fldtype))
{
Integer intval=Integer.String());
method.invoke(bean,intval);
}
else if("Long".equalsIgnoreCase(fldtype))
{
Long temp=Long.String());
method.invoke(bean,temp);
}
else if(fldtype.equalsIgnoreCase("Float"))
{
Float f=Float.String());
method.invoke(bean,f);
}
else if("Double".equalsIgnoreCase(fldtype))
{
Double temp=Double.String());
method.invoke(bean,temp);
}
else if("Boolean".equalsIgnoreCase(fldtype))
{
Boolean temp=Boolean.String()); method.invoke(bean,temp);
}
else
{
System.out.println("not supper type"+fldtype);
}
}
break;
}
}
}
}
list.add(bean);
}
}
catch(Exception e){
System.out.Message());
e.printStackTrace();
}
return list;
}
/**
* 拼接某属性set ⽅法
* @param fldname
* @return
*/
public static String pareSetName(String fldname)
{
if(null==fldname ||"".equals(fldname))
{
return null;
}
}
String pro="set"+fldname.substring(0,1).toUpperCase()+fldname.substring(1);
return pro;
}
/**
* 判断该⽅法是否存在
* @param methods
* @param met
* @return
*/
public static boolean checkMethod(Method methods[],String met)
{
if(null != methods)
{
for(Method method:methods)
{
if(met.Name()))
{
return true;
}
}
}
return false;
}
/**
* 格式化string为Date
* @param datestr
* @return date
*/
public static Date parseDate(String datestr)
{
if(null==datestr ||"".equals(datestr))
{
return null;
}
try
{
String fmtstr=null;
if(datestr.indexOf(':')>0)
{
fmtstr="yyyy-MM-dd HH:mm:ss";
}
else
{
fmtstr="yyyy-MM-dd";
}
SimpleDateFormat sdf=new SimpleDateFormat(fmtstr);
return sdf.parse(datestr);
}
catch(Exception e)
{
System.out.Message());
return null;
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论