1,xml對應javabean
import javax.xml.bind.annotation.*;
import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
//指定根節點
@XmlRootElement(name = "RTItem")
@XmlType(propOrder = {"isTicket", "isCancelled", "pnrNo", "rtOfficeItem", "rtNameItemList",
"rtFlightSegemntItemList", "rtIdentifyItemList", "rtFCItemList", "rtFNItemList",
"rtTnItemList","originalString","patItemList"})
public class RTItem {
@XmlElement(name="IsTicket")
private Boolean isTicket;
@XmlElement(name="IsCancelled")
private Boolean isCancelled;
@XmlElement(name="PnrNo")
private String pnrNo;
@XmlElement(name="RtOfficeItem")
private RtOfficeItem rtOfficeItem;
@XmlElementWrapper(name = "RtNameItemList")
@XmlElement(name="RTNameItem")
private List<RTNameItem> rtNameItemList;
@XmlElementWrapper(name = "RtFlightSegemntItemList")
@XmlElement(name="RTFlightSegemntItem")
private List<RTFlightSegemntItem> rtFlightSegemntItemList;
@XmlElementWrapper(name = "RtIdentifyItemList")
@XmlElement(name="RtIdentifyItem")
private List<RtIdentifyItem> rtIdentifyItemList;
@XmlElementWrapper(name = "RtFCItemList")
@XmlElement(name="RtFCItem")
private List<RtFCItem> rtFCItemList;
@XmlElementWrapper(name = "RtFNItemList")
@XmlElement(name="RtFNItem")
private List<RtFNItem> rtFNItemList;
@XmlElementWrapper(name = "RtTnItemList")
@XmlElement(name="RtTnItem")
private List<RtTnItem> rtTnItemList;
@XmlElement(name="OriginalString")
private String originalString;
@XmlElementWrapper(name = "PatItemList")
@XmlElement(name="RtTnItem")
private List<RtTnItem> patItemList;
public Boolean getTicket() {
return isTicket;
}
public void setTicket(Boolean ticket) {
isTicket = ticket;
}
public Boolean getCancelled() {
return isCancelled;
}
public void setCancelled(Boolean cancelled) {
isCancelled = cancelled;
}
public String getPnrNo() {
return pnrNo;
}
public void setPnrNo(String pnrNo) {
this.pnrNo = pnrNo;
}
public RtOfficeItem getRtOfficeItem() {
return rtOfficeItem;
}
public void setRtOfficeItem(RtOfficeItem rtOfficeItem) {
this.rtOfficeItem = rtOfficeItem;
}
public List<RTNameItem> getRtNameItemList() {
return rtNameItemList;
}
public void setRtNameItemList(List<RTNameItem> rtNameItemList) {
this.rtNameItemList = rtNameItemList;
}
public List<RTFlightSegemntItem> getRtFlightSegemntItemList() {
return rtFlightSegemntItemList;
}
public void setRtFlightSegemntItemList(List<RTFlightSegemntItem> rtFlightSegemntItemList) {
this.rtFlightSegemntItemList = rtFlightSegemntItemList;
}
public List<RtIdentifyItem> getRtIdentifyItemList() {
return rtIdentifyItemList;
}
public void setRtIdentifyItemList(List<RtIdentifyItem> rtIdentifyItemList) {
this.rtIdentifyItemList = rtIdentifyItemList;
}
public List<RtFCItem> getRtFCItemList() {
return rtFCItemList;
}
public void setRtFCItemList(List<RtFCItem> rtFCItemList) {
this.rtFCItemList = rtFCItemList;
}
public List<RtFNItem> getRtFNItemList() {
return rtFNItemList;
}
public void setRtFNItemList(List<RtFNItem> rtFNItemList) {
this.rtFNItemList = rtFNItemList;
}
public List<RtTnItem> getRtTnItemList() {
return rtTnItemList;
}
public void setRtTnItemList(List<RtTnItem> rtTnItemList) {
this.rtTnItemList = rtTnItemList;
}
public String getOriginalString() {
return originalString;
}
public void setOriginalString(String originalString) {
this.originalString = originalString;
}
public List<RtTnItem> getPatItemList() {
return patItemList;
}
public void setPatItemList(List<RtTnItem> patItemList) {
this.patItemList = patItemList;
}
}
2,jax解析工具類
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.io.StringWriter;
/**
*@Description Jaxb解析XML工具類
*@Date 2018/5/11 10:17
*/
public class JaxbUtil {
/**
* JavaBean轉換成xml
* 使用默認編碼UTF-8
* @param obj
* @return
*/
public static String convert2Xml(Object obj) {
return convert2Xml(obj, "UTF-8");
}
/**
* JavaBean轉換成xml
* @param obj javabean
* @param encoding 編碼格式
* @return 返回xml文件的字符串,若是發生異常,將返回null!
*/
public static String convert2Xml(Object obj, String encoding) {
String result = null;
try {
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
result = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* xml轉換成JavaBean,調用該方法時,請將XML讀取到String
* @param xml 讀取XML文件到String的String實例
* @param c JavaBean's class
* @return 返回目標類的實例,若是過程當中有異常將返回null
*/
@SuppressWarnings("unchecked")
public static <T> T convert2JavaBean(String xml, Class<T> c) {
T t = null;
try {
JAXBContext context = JAXBContext.newInstance(c);
Unmarshaller unmarshaller = context.createUnmarshaller();
t = (T) unmarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
}