java string类型xml解析为对象
来源:互联网 发布:oracle数据库代理商 编辑:程序博客网 时间:2024/04/28 20:21
下面是一个需要解析的xml:
string stringxml=“<?xml version="1.0" encoding="GB2312" ?><userlist> <user> <userid>test@test.com</userid> <name>test123</name> <departmentid>1</departmentid> <office>CEO</office> <mobile>13800138000</mobile> <phone>01084291263</phone> <fax>01084291263001</fax> </user> <user> <userid>test2@test.com</userid> <name>test333</name> <departmentid>2</departmentid> <office>CEO</office> <mobile>138001380444</mobile> <phone>0108429145</phone> <fax>01084291263001</fax> </user></userlist>”
xml写得有点随便,就是一个需要解析的长xml
代码:
第一:先创建一个跟xml文件字段对应的javabean:
package com.zy.mailbox.bean;public class User { private String userid; private String name; private String departmentid; private String office; private String mobile; private String phone; private String fax;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDepartmentid() {return departmentid;}public void setDepartmentid(String departmentid) {this.departmentid = departmentid;}public String getOffice() {return office;}public void setOffice(String office) {this.office = office;}public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getFax() {return fax;}public void setFax(String fax) {this.fax = fax;}@Overridepublic String toString() {return "User [userid=" + userid + ", name=" + name + ", departmentid=" + departmentid + ", office=" + office+ ", mobile=" + mobile + ", phone=" + phone + ", fax=" + fax + "]";} }
2.<=================编写解析工具========================>
package com.zy.mailbox.utils;import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.List;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.Namespace;import org.jdom.input.SAXBuilder;import org.xml.sax.InputSource;import com.zy.mailbox.bean.User;public class ReadXML { public static List<User> xmlElements(String xmlDoc) { //创建一个新的字符串 StringReader read = new StringReader(xmlDoc); //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); //创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); List<User> users = new ArrayList<>(); try { //通过输入源构造一个Document Document doc = sb.build(source); //取的根元素 Element root = doc.getRootElement(); System.out.println(root.getName());//输出根元素的名称(测试) //得到根元素所有子元素的集合 List jiedian = root.getChildren(); //获得XML中的命名空间(XML中未定义可不写) Namespace ns = root.getNamespace(); Element et = null; for(int i=0;i<jiedian.size();i++){ et = (Element) jiedian.get(i);//循环依次得到子元素 User user = new User(); String userid = et.getChild("userid",ns).getText(); String name = et.getChild("name",ns).getText(); String departmentid = et.getChild("departmentid",ns).getText(); String office = et.getChild("office",ns).getText(); String mobile = et.getChild("mobile",ns).getText(); String phone = et.getChild("phone",ns).getText(); String fax = et.getChild("fax",ns).getText(); user.setUserid(userid); user.setName(name); user.setDepartmentid(departmentid); user.setOffice(office); user.setMobile(mobile); user.setPhone(phone); user.setFax(fax); users.add(user); } } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return users;}}
最后运行打印:
User [userid=zhanjie@zy.com, name=张1杰, departmentid=717, office=教师, mobile=13268212733, phone=, fax=]
User [userid=zhangjixian1@zy.com, name=张洁娴, departmentid=9161, office=经理, mobile=+86-13922431120, phone=84419009-308, fax=]
User [userid=zhanjing1@zy.com, name=张静, departmentid=5104, office=校区校长, mobile=+86-13163789684, phone=, fax=]
User [userid=zhangjig@zy.com, name=张静, departmentid=5013, office=语文教师, mobile=13714430743, phone=, fax=]
User [userid=zhangjngxin@zy.com, name=张静欣, departmentid1=748, office=行政, mobile=13928888334, phone=, fax=]
User [userid=zhagjingya@zy.com, name=张静雅, departmentid=814, office=专职教师, mobile=18218880206, phone=, fax=]
User [userid=zhagjingyao@zy.com, name=张婧瑶, departmentid=9143, office=小升初英语研发主任, mobile=15975383408, phone=, fax=]。。。。。。。。。。。。。。
- java string类型xml解析为对象
- java解析XML为对象
- java 解析String类型的xml
- java解析string类型的xml
- java 判断对象是否为String类型
- XML解析为对象
- 解析String类型的XML
- java解析由String类型拼接的XML文件
- java转换string类型timestamp为Date对象
- java String对象解析
- JAXB解析xml文件转换为Java对象
- Dom4j解析String类型的xml数据
- 如何解析String类型的XML
- DOM4J解析String类型的xml文件
- java对象转换String类型
- string类型转换为json对象保存
- Android--<String>XX</String>类型的XML解析
- java解析String类型t复杂xml,多级节点,最好的例子
- 窗体部件之自定义PushButton
- 工厂方法模式
- if条件判断语句
- js 获取select标签的选中值
- 浅析面对对象 六大原则(五)
- java string类型xml解析为对象
- gdb调试
- 杭电2030汉字统计
- 【接口】-请求WebApi的2种方式
- iOS开发之pod的版本回退
- 正则表达式的快速学习和使用(基础)
- C/C++内存泄漏检测
- 微信jssdk领取卡券
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系