隨筆 - 100  文章 - 50  trackbacks - 0
          <2014年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          解析XML文件:xml 文件如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <trans>
          <tran>
          <requestId>111111</requestId>
          <orderNo>13141322</orderNo>
          <returnCode>000001</returnCode>
          <returnInfo>交易失敗</returnInfo>
          </tran>
          <tran>
          <requestId>2222222</requestId>
          <orderNo>13141323</orderNo>
          <returnCode>000000</returnCode>
          <returnInfo>交易成功</returnInfo>
          </tran>
          </trans>
          建立對(duì)應(yīng)的JAVA bean類
          Trans.java類
          package com.jaxb.test;
          import java.util.List;
          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlElement;
          import javax.xml.bind.annotation.XmlRootElement;
          @XmlRootElement(name = "trans")
          @XmlAccessorType(XmlAccessType.FIELD)
          public class Trans{
          @XmlElement(name = "tran")
          private List<Tran> data = null;
          public List<Tran> getData() {
          return data;
          }
          public void setData(List<Tran> data) {
          this.data = data;
          }
          }
          Tran.java類
          package com.jaxb.test;
          import javax.xml.bind.annotation.XmlAccessType;
          import javax.xml.bind.annotation.XmlAccessorType;
          import javax.xml.bind.annotation.XmlElement;
          @XmlAccessorType(XmlAccessType.FIELD)
          public class Tran {
          @XmlElement(name = "requestId")
          private Long requestId;
          @XmlElement(name = "orderNo")
          private Long orderNo;
          @XmlElement(name = "returnCode")
          private String returnCode;
          @XmlElement(name = "returnInfo")
          private String returnInfo;
          public Long getRequestId() {
          return requestId;
          }
          public void setRequestId(Long requestId) {
          this.requestId = requestId;
          }
          public Long getOrderNo() {
          return orderNo;
          }
          public void setOrderNo(Long orderNo) {
          this.orderNo = orderNo;
          }
          public String getReturnCode() {
          return returnCode;
          }
          public void setReturnCode(String returnCode) {
          this.returnCode = returnCode;
          }
          public String getReturnInfo() {
          return returnInfo;
          }
          public void setReturnInfo(String returnInfo) {
          this.returnInfo = returnInfo;
          }
          }
          建立測(cè)試類
          import java.io.File;
          import java.util.ArrayList;
          import java.util.List;
          import javax.xml.bind.JAXBContext;
          import javax.xml.bind.JAXBException;
          import javax.xml.bind.Marshaller;
          import javax.xml.bind.Unmarshaller;
          public class TestJAXB {
          public static void main(String[] args) {
          try {
          //read xml file to Java object
          Trans trans = TestJAXB.readString(Trans.class,"input.xml");
          List<Tran> datas = trans.getDatas();
          for (Tran o : datas) {
          System.out.println(o.getReturnCode()+";"+o.getReturnInfo());
          }
          //write java object to xml
          Tran tran = new Tran();
                tran.setOrderNo(11111L);
                tran.setRequestId(22222L);
                tran.setReturnCode("0000");
                tran.setReturnInfo("success");
                Tran tran2 = new Tran();
                tran2.setOrderNo(33333L);
                tran2.setRequestId(44444L);
                tran2.setReturnCode("0001");
                tran2.setReturnInfo("failure");
                Trans trxs = new Trans();
                List<Tran> list = new ArrayList<Tran>(); 
                list.add(tran);
                list.add(tran2);
                trxs.setDatas(list);
          File file = new File("D:/output.xml");
          JAXBContext jaxbContext = JAXBContext.newInstance(Trans.class);
          Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
          // output pretty printed
          jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
          jaxbMarshaller.marshal(trxs, file);
          jaxbMarshaller.marshal(trxs, System.out);
          } catch (JAXBException e) {
          e.printStackTrace();
          }
          }
          @SuppressWarnings("unchecked")
          public static <T> T readString(Class<T> clazz, String context) throws JAXBException {
          try {
          JAXBContext jc = JAXBContext.newInstance(clazz);
          Unmarshaller u = jc.createUnmarshaller();
          return (T) u.unmarshal(new File(context));
          } catch (JAXBException e) {
          throw e;
          }
          }
          }
          posted on 2014-12-11 14:44 fly 閱讀(354) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE
          主站蜘蛛池模板: 钟山县| 泾川县| 水富县| 隆回县| SHOW| 红安县| 青阳县| 依安县| 金川县| 北京市| 邯郸县| 灵石县| 富阳市| 南昌市| 上饶县| 大连市| 巴塘县| 华安县| 介休市| 浦北县| 韶关市| 沁水县| 陆川县| 正宁县| 平阴县| 囊谦县| 通辽市| 会东县| 武功县| 常州市| 连平县| 宕昌县| 西贡区| 临泽县| 威宁| 旅游| 三原县| 文昌市| 即墨市| 富锦市| 延安市|