标签:
MAVEN坐标:
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.0</version>
</dependency>
XML格式:
<?xml version="1.0" encoding="GBK"?> <root> <head> <code>1</code> <message>数据下载成功</message> <rownum>1</rownum> </head> </root> <body> <veh id="0"> <xh>1</xh> <hpzl>1</hpzl> <hphm>皖A123456</hphm> <clppl>皖A123456</clppl> <clxh>车辆类型</clxh> <clsbdh>车辆识别代号</clsbdh> <fdjh>发动机号</fdjh> <cllx>车辆类型</cllx> <csys>车身颜色</csys> <syxz>使用性质</syxz> <syr>机动车所有人</syr> <ccdjrg>初次登记日期</ccdjrg> <yxqz>检验有效期止</yxqz> <qzbfqz>强制报废期止</qzbfqz> <zt>机动车状态</zt> <fdjxh>发动机型号</fdjxh> <rlzl>燃料种类</rlzl> <pl>1</pl> <gl>1</gl> <zs>1</zs> <zj>1</zj> <zzl>总质量</zzl> <zbzl>整备质量</zbzl> <hdzzl>核定载质量</hdzzl> <hdzk>核定载客</hdzk> <ccrq>出厂日期</ccrq> </veh> </body>
代码如下:
package com.goldensky.common; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.xml.sax.InputSource; public class Test { public static void main(String[] args) throws Exception { String xml = "<?xml version=‘1.0‘ encoding=‘GBK‘?><root><head><code>1</code><message>数据下载成功</message><rownum>1</rownum></head><body><veh id=‘0‘><xh>1</xh><hpzl>1</hpzl><hphm>皖A123456</hphm><clppl>皖A123456</clppl><clxh>车辆类型</clxh><clsbdh>车辆识别代号</clsbdh><fdjh>发动机号</fdjh><cllx>车辆类型</cllx><csys>车身颜色</csys><syxz>使用性质</syxz><syr>机动车所有人</syr><ccdjrg>初次登记日期</ccdjrg><yxqz>检验有效期止</yxqz><qzbfqz>强制报废期止</qzbfqz><zt>机动车状态</zt><fdjxh>发动机型号</fdjxh><rlzl>燃料种类</rlzl><pl>1</pl><gl>1</gl><zs>1</zs><zj>1</zj><zzl>总质量</zzl><zbzl>整备质量</zbzl><hdzzl>核定载质量</hdzzl><hdzk>核定载客</hdzk><ccrq>出厂日期</ccrq></veh></body></root>"; getBean(xml); } public static void getBean(String xmlDoc) { //创建一个新的字符串 StringReader read = new StringReader(xmlDoc); //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); //创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); try { //通过输入源构造一个Document Document doc = sb.build(source); //取的根元素 Element root = doc.getRootElement(); System.out.println(root.getName());//输出根元素的名称(测试) //得到根元素所有子元素的集合 List nodelist = root.getChildren(); Element et = null; Element ev = null;//veh下面的节点 for(int i=0;i<nodelist.size();i++){ et = (Element) nodelist.get(i);//循环依次得到子元素 if(et.getName().equals("head")) { System.out.println(et.getChild("code",null).getText()); System.out.println(et.getChild("message",null).getText()); System.out.println(et.getChild("rownum",null).getText()); } else if(et.getName().equals("body")) { System.out.print("开始读取Veh节点信息..."); List nd =et.getChildren(); for(int j=0;i<=nd.size();j++) { ev=(Element) nd.get(j); //这里就是判断有多个veh,可以取多个veh下面的节点。根据我们的业务,就默认取第一个veh List count= ev.getAttributes(); if(ev.getName().equals("veh")) { System.out.println(ev.getChild("xh",null).getText()); System.out.println(ev.getChild("hpzl",null).getText()); System.out.println(ev.getChild("hphm",null).getText()); System.out.println(ev.getChild("clxh",null).getText()); System.out.println(ev.getChild("clsbdh",null).getText()); System.out.println(ev.getChild("fdjh",null).getText()); System.out.println(ev.getChild("cllx",null).getText()); System.out.println(ev.getChild("csys",null).getText()); System.out.println(ev.getChild("syxz",null).getText()); } } } } } catch (Exception e) { // TODO: handle exception } }
标签:
原文地址:http://www.cnblogs.com/it888/p/5068066.html