//首先实例化Xstream
XStream stream = new XStream();
stream.processAnnotations(MyBean.class);//这里需要注解是你自己根据xml写的bean类(下面附代码解释xml)
MyBean bean = (MyBean) stream.fromXML(xml);//xml魏自己从网络上获取的xml字符串
//下一步就不写了,式袭击想要xml节点里的什么就取什么
//XML文件
<root>
<resultcode>200</resultcode>
<reason>success</reason>
<result>
<item>
<id>242</id>
<catalog>中国文学</catalog>
</item>
<item>
<id>252</id>
<catalog>人物传记</catalog>
</item>
<item>
<id>244</id>
<catalog>儿童文学</catalog>
</item>
<item>
<id>248</id>
<catalog>历史</catalog>
</item>
<item>
<id>257</id>
<catalog>哲学</catalog>
</item>
</result>
<error_code>0</error_code>
</root>
//接下来是bean类
@XStreamAlias("root")//这里用到注解(必须写)
public class MyBean {
public String resultcode;
public String reason;
public String error_code;
// @XStreamAlias("result")
// public MyrResult result;
@XStreamImplicit(itemFieldName="result")//这个节点可以写成类也可以写成集合,一般还是要写成类比较好理解
public ArrayList<MyrResult> result;
public static class MyrResult{
@XStreamImplicit(itemFieldName="item")
public ArrayList<MyItem> item;
public static class MyItem{
public String id;
public String catalog;
}
}
}
总结小经验
1:xml一个节点的都可以认为是一个类,如果要写一个类在此类上面写个注解(类的注解为@XStreamAlias(“你的节点名”))
2:一个大节点有几个相同的小节点一般都是集合类型的(集合的注解为@XStreamImplicit(“你的节点名”))
3:xml里面的每一个属性(子节点)都必须要写,不然会报错
4:出了最外层的类不用写成静态的,里面的每一个类都必需写成静态的,