xstream 小结 一个标签下有多个同名标签
1个回答
2016-03-07 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
方式一用加注解的方式
xml文件中,有多个元素response,a,b,c,d,name
5个name 中国,美国,俄罗斯,英国,法国
1)bean.java
2)在list上加注解
@XStreamImplicit(itemFieldName="searchContent")// @XStreamImplicit加注解,itemFieldName说明隐含的元素名
3)在test.java中,在根节点转换之前调用
stream.autodetectAnnotations(true);
package bean;
public class Testresponse {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package bean;
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
public class User {
@XStreamImplicit(itemFieldName="name")//标注加在list上
private List<String> name;
public List<String> getName() {
return name;
}
public void setName(List<String> name) {
this.name = name;
}
}
package bean;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.HashMap;
import java.util.Set;
import com.thoughtworks.xstream.XStream;
public class Test {
@SuppressWarnings("unchecked")
public static void main(String args[]) {
Reader reader = null;
File file = new File(
"C://Users//ThinkPad//workspace8//xstreamtest//WebRoot//a.xml");
try {
reader = new FileReader(file);
XStream xstream = new XStream();
HashMap<String, Class> hashmap = new HashMap<String, Class>();
hashmap.put("user", User.class);
hashmap.put("reponse", Testresponse.class);
Set<String> keyset = hashmap.keySet();
for (String str : keyset) {
xstream.alias(str, hashmap.get(str));
}
xstream.autodetectAnnotations(true);
Testresponse response = (Testresponse) xstream.fromXML(reader);
System.out.println(response);
String s = xstream.toXML(response);
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<reponse>
<user>
<name>jack1</name>
<name>jack2</name>
<name>jack3</name>
</user>
</reponse>
xml文件中,有多个元素response,a,b,c,d,name
5个name 中国,美国,俄罗斯,英国,法国
1)bean.java
2)在list上加注解
@XStreamImplicit(itemFieldName="searchContent")// @XStreamImplicit加注解,itemFieldName说明隐含的元素名
3)在test.java中,在根节点转换之前调用
stream.autodetectAnnotations(true);
package bean;
public class Testresponse {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package bean;
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
public class User {
@XStreamImplicit(itemFieldName="name")//标注加在list上
private List<String> name;
public List<String> getName() {
return name;
}
public void setName(List<String> name) {
this.name = name;
}
}
package bean;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.HashMap;
import java.util.Set;
import com.thoughtworks.xstream.XStream;
public class Test {
@SuppressWarnings("unchecked")
public static void main(String args[]) {
Reader reader = null;
File file = new File(
"C://Users//ThinkPad//workspace8//xstreamtest//WebRoot//a.xml");
try {
reader = new FileReader(file);
XStream xstream = new XStream();
HashMap<String, Class> hashmap = new HashMap<String, Class>();
hashmap.put("user", User.class);
hashmap.put("reponse", Testresponse.class);
Set<String> keyset = hashmap.keySet();
for (String str : keyset) {
xstream.alias(str, hashmap.get(str));
}
xstream.autodetectAnnotations(true);
Testresponse response = (Testresponse) xstream.fromXML(reader);
System.out.println(response);
String s = xstream.toXML(response);
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<reponse>
<user>
<name>jack1</name>
<name>jack2</name>
<name>jack3</name>
</user>
</reponse>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询