Java Xstream xml 与bean之间的转换

xml文件如下:

<mvc>
<action name="user/select" class="com.cloud.mvc.controller.UserController" method="select">
<result name="success">/WEB-INF/view/index.jsp</result>
<result name="faild">/index.jsp</result>
</action>
<action name="user/select" class="com.cloud.mvc.controller.UserController" method="select">
<result name="success">/WEB-INF/view/index.jsp</result>
<result name="faild">/index.jsp</result>
</action>
</mvc>



代码如下:


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.thoughtworks.xstream.converters.extended.ToAttributedValueConverter;
import com.thoughtworks.xstream.io.xml.DomDriver;

@XStreamAlias("mvc")
class MVC {
@XStreamImplicit()
@XStreamAlias("action")
private List<Action> actionlist;

public List<Action> getActionlist() {
return actionlist;
}

public void setActionlist(List<Action> actionlist) {
this.actionlist = actionlist;
}
}

@XStreamAlias("action")
class Action {
@XStreamAsAttribute()
@XStreamAlias("name")
private String name;
@XStreamAsAttribute()
@XStreamAlias("class")
private String classname;
@XStreamAsAttribute()
@XStreamAlias("method")
private String method;
@XStreamImplicit
@XStreamAlias("result")
private List<Result> rlist;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getClassname() {
return classname;
}

public void setClassname(String classname) {
this.classname = classname;
}

public String getMethod() {
return method;
}

public void setMethod(String method) {
this.method = method;
}

public List<Result> getRlist() {
return rlist;
}

public void setRlist(List<Result> rlist) {
this.rlist = rlist;
}
}

@XStreamAlias("result")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "value" })
class Result {
@XStreamAsAttribute()
private String name;

private String value;


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}

public class GetList {
public static void main(String args[]) throws IOException{
Class cls=MVC.class;
String xmlStr="";
File f=new File("D:"+File.separator+"test.xml");
BufferedReader reader = null;
reader = new BufferedReader(new FileReader(f));
String tempString = null;
int line = 1;
while ((tempString = reader.readLine()) != null) {
tempString=tempString.trim();
xmlStr=xmlStr+tempString;
line++;
}
reader.close();
System.out.println(xmlStr);
XStream xstream = new XStream(new DomDriver());
xstream.processAnnotations(cls);
MVC mvc=(MVC)xstream.fromXML(xmlStr);

for(int i=0;i<mvc.getActionlist().size();i++){
Action action=mvc.getActionlist().get(i);
System.out.println(action.getClassname()+","+action.getName()+","+action.getMethod());
for(int j=0;j<action.getRlist().size();j++){
Result r=action.getRlist().get(j);
System.out.println(r.getName()+","+r.getValue());
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值