Java 利用Xstream 解析 XML

XML  ---> JAVA

XML文件:
    
    
<?xml version="1.0" encoding="UTF-8"?>
<Datas>
<SvcCont>aa</SvcCont>
<listDatas>
<Data>
<A>1</A>
<B>2</B>
<C>3</C>
</Data>
<Data>
<A>11</A>
<B>22</B>
<C>33</C>
</Data>
</listDatas>
</Datas>
JAVA实体类:
    
    
import java.util.List;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("Datas")
public class Datas
{
@XStreamAlias("SvcCont")
private String SvcCont;
@XStreamAlias("listDatas")
private List<Data> listDatas;
public String getSvcCont() {
return SvcCont;
}
public void setSvcCont(String svcCont) {
SvcCont = svcCont;
}
public List<Data> getListDatas() {
return listDatas;
}
public void setListDatas(List<Data> listDatas) {
this.listDatas = listDatas;
}
}
     
     
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("Data")
public class Data
{
@XStreamAlias("A")
private String A;
@XStreamAlias("B")
private String B;
@XStreamAlias("C")
private String C;
public String getA() {
return A;
}
public void setA(String a) {
A = a;
}
public String getB() {
return B;
}
public void setB(String b) {
B = b;
}
public String getC() {
return C;
}
public void setC(String c) {
C = c;
}
}
测试类:
关键代码
XStream xstream = new XStream(new DomDriver()); xstream.processAnnotations(Datas.class);Datas datas = (Datas)xstream.fromXML(str);
    
    
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
 
public class xmlTest
{
public static void main(String args[]) throws IOException
{
String str = xmlTest.Read("src/xmlTest/DataFile.xml");
XStream xstream = new XStream(new DomDriver());
xstream.processAnnotations(Datas.class);
Datas datas = (Datas)xstream.fromXML(str);
System.out.println(datas.getListDatas().size());
}
 
public static String Read(String fileName)
{
StringBuffer returnBuffer = new StringBuffer();
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
System.out.println("line " + line + ": " + tempString);
returnBuffer.append(tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
return returnBuffer.toString();
}
}
效果图:



JAVA  ---> XML
关键代码
XStream xstream = new XStream(); xstream.processAnnotations(Datas.class);String str = xstream.toXML(datas);
    
    
public static void javaToXml()
{
Datas datas = new Datas();
datas.setSvcCont("aaa");
List<Data>listDatas = new ArrayList<Data>();
Data data = new Data();
data.setA("a");
data.setB("b");
data.setC("c");
listDatas.add(data);
        data = new Data();
data.setA("ab");
data.setB("bb");
data.setC("cb");
listDatas.add(data);
        data = new Data();
data.setA("ac");
data.setB("bc");
data.setC("cc");
listDatas.add(data);
        data = new Data();
data.setA("4");
data.setB("3");
data.setC("1");
listDatas.add(data);
datas.setListDatas(listDatas);
XStream xstream=new XStream();
xstream.processAnnotations(Datas.class);
String xml = xstream.toXML(datas);
System.out.println(xml);
}
效果图:



===================== 省略<ListDatas> ========================


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值