XStream解析XML格式字符串,这里的案例中,xml字符串是没有相同节点的,也就是不需要循环就可以解析出来.
如果有相同节点,请看我的另一篇文章Dom4j解析XML,并解析含有相同节点
xml样式
xml="<REQUEST>"
+"<IDCARD>320583199601181234</IDCARD>"
+"</REQUEST>";
新建model类
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("REQUEST")
public class GetInfoRequest {
private String NAME;
private String IDCARD;
public String getNAME() {
return NAME;
}
public void setNAME(String nAME) {
NAME = nAME;
}
public String getIDCARD() {
return IDCARD;
}
public void setIDCARD(String iDCARD) {
IDCARD = iDCARD;
}
}
解析XML
import com.thoughtworks.xstream.XStream;
@Override
public String getNurseInfo(String tradeXml) {
if(null == tradeXml || "".equals(tradeXml) ){
System.out.println("获取信息失败,失败原因【请求xml为空】");
}else{
//解析XML
XStream xstreamReq = new XStream();
xstreamReq.processAnnotations(GetInfoRequest.class);
xstreamReq.autodetectAnnotations(true);
xstreamReq.aliasSystemAttribute(null, "class");
GetInfoRequest request = new GetInfoRequest();
try{
request = (GetInfoRequest)xstreamReq.fromXML(tradeXml);
}catch(Exception e) {
System.out.println("获取信息失败,失败原因【请求xml解析失败】");
}
String idcard = request.getIDCARD();
if(null==idcard || "".equals(idcard)){
System.out.println("获取信息失败,失败原因【身份证号为空】");
}else{
return idcard ; //idcard为解析出来的XML中的IDCARD
}