java读取post的xml文件
2009-10-26 15:54
225 查看
<?xml version="1.0" encoding="GBK"?> <message> <linkid>11215226486368967764</linkid> <spid>cmcc-2000</spid> <spcode>10662000</spcode> <feecode>LS</feecode> <feeprice>100</feeprice> <toicp>123</toicp> <product></product> <feecategory></feecategory> <channel></channel> <mobile></mobile> <content>短息内容</content> <isprovision></isprovision> <issubscribe></issubscribe> <createDate>2008-07-11 00:02:17</createDate> </message>
/**泛型读取request post的XML文件,其中T符合java bean规范**/ package sharesoft; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import com.cn.BusinessFlow; public class ReceivePostXML <T> { private T t; public ReceivePostXML(InputStream is){ this.is = is; } public ReceivePostXML(){ } public T readXMLLinton(HttpServletRequest request, HttpServletResponse response,Object object){ Document doc = null; Element root; BufferedReader br; T t = (T) object; try { FileReader fr=new FileReader("WebRoot/WEB-INF/hell.xml");//测试时使用 //doc=new SAXBuilder().build(request.getReader());//创建Document对象,是具有xml格式的文件 doc=new SAXBuilder().build(fr);//测试时使用 root=doc.getRootElement();//返回根节点 System.out.println(t.getClass().toString()); PropertyDescriptor[] pd=Introspector.getBeanInfo(object.getClass()).getPropertyDescriptors(); //Introspector.getBeanInfo(t.getClass())反射机制得到javabean的属性和公开方法 //BeanInfo.getPropertyDescriptors()得到JavaBean的所有属性 //PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。属性名和值 for(PropertyDescriptor p:pd){ String fieldName=p.getName(); String fieldValue; if((fieldValue=root.getChildText(fieldName))!=null){//如果子节点的值不为空则执行 ,与此节点相同名字的JavaBean属性,通过一个存储器方法赋值 Method m=p.getWriteMethod(); m.setAccessible(true); try{ m.invoke(t, fieldValue); System.out.println("fieldValue: "+fieldValue); }catch(Exception e){ e.printStackTrace(); } } } } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IntrospectionException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (T) t; } public static void main(String[] args) throws FileNotFoundException { FileReader fr=new FileReader("WebRoot/WEB-INF/hell.xml"); HttpServletRequest request = null; HttpServletResponse response = null; LinktoneMR businessFlow = new LinktoneMR(); new ReceivePostXML<LinktoneMR> ().readXMLLinton(request, response,businessFlow); } } }
T是个JavaBean例如:
package sharesoft; public class LinktoneMR { private int id; private String msgid="";// private String linkid=""; // private String statestr="";// private String mobile=""; // private String createDate="";// public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMsgid() { return msgid; } public void setMsgid(String msgid) { this.msgid = msgid; } public String getLinkid() { return linkid; } public void setLinkid(String linkid) { this.linkid = linkid; } public String getStatestr() { return statestr; } public void setStatestr(String statestr) { this.statestr = statestr; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getCreateDate() { return createDate; } public void setCreateDate(String createDate) { this.createDate = createDate; } }
xml 如下只有一个节点
<?xml version="1.0" encoding="GBK"?> <message> <linkid>11215226486368967764</linkid> <spid>cmcc-2000</spid> <spcode>10662000</spcode> <feecode>LS</feecode> <feeprice>100</feeprice> <toicp>123</toicp> <product></product> <feecategory></feecategory> <channel></channel> <mobile></mobile> <content>短息内容</content> <isprovision></isprovision> <issubscribe></issubscribe> <createDate>2008-07-11 00:02:17</createDate> </message>
相关文章推荐
- 【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
- java读取xml文件并转换成对象,并进行修改
- java代码及xml文件读取properties属性文件的方法
- java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB
- JAVA读取XML文件
- Java读取XML文件实现方法
- Java读取XML文件常用方法 详解!(第二次更新)
- Java——采用DOM4J+单例模式实现XML文件的读取
- JAVA读取XML文件详解
- Java获取路径方法&相对路径读取xml文件方法
- Java读取多层级xml文件
- 用JAVA创建,读取XML文件
- java项目——Dom4j读取XML文件保存orecal数据库
- java读取xml文件
- Java获取路径方法&相对路径读取xml文件方法
- Java如何读取XML文件 具体实现
- Java读取xml文件方法
- java操作XML文件--读取内容
- java项目——Dom4j读取XML文件连接orecal数据库
- Java读取多层级xml文件