Android Xstream
来源:互联网 发布:服务器怎么开启端口 编辑:程序博客网 时间:2024/05/21 18:46
第一次写博客,应该能看
一,什么是xstream
Xstream是将java对象和XML互相转换的第三方架包。
本文使用的xstream版本是1.4.7版本 【注:因xstream已经放入studio库中这里就不提供第三方包地址了】
废话不多说,代码是最好的解释:
MainActivity的xml布局就写了一个TextView, 很是简单我这里就不写了
MainActivity
public class MainActivityextendsAppCompatActivity {
<TfrxReportVersion="4.9.20"DotMatrixReport="False" IniFile="\Software\Fast Reports" >
<TfrxDataPageName="Da"Height="100"Left="0"Top="0"Width="1000"/>
<TfrxReportPageName="Page"PaperWidth="82"PaperHeight="152">
<TfrxPictureViewName="BarCode_Img"Left="146.3859"Top="46.77953"Width="79.37013"Height="79.37007874"/>
<TfrxMemoViewName="TicketWindow"
Left="94.48818898"Top="409.55362714"Width="98.26778"Height="15.11812"/>
<TfrxMemoViewName="InvaliDate
"Left="94.13213234"Top="409.78765487"Width="98.01478"Height="15.78956"/>
<TfrxMemoViewName="BarCode
"Left="94.958464854"Top="409.47865435"Width="98.78961"Height="15.15236"/>
<TfrxMemoViewName="TicketName
"Left="94.36848595"Top="409.10424427"Width="98.85485"Height="15.11021"/>
</TfrxReportPage>
</TfrxReport>
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView=(TextView) findViewById(R.id.tv_Data);
MyTfrxReport myReport= XmlUtils.getObject(str, MyTfrxReport.class);
MyTfrxReportPage myPage=XmlUtils.getObject(strin,MyTfrxReportPage.class);
String mTfrxPictureView="";
String mTfrxMemoView="";
for(inti=0;i<myPage.getTfrxPictureView().size();i++){
mTfrxPictureView+=myReport.getTfrxReportPage();
}
for(intj=0;j<myPage.getTfrxMemoView().size();j++){
mTfrxMemoView+=myPage.getTfrxMemoView().get(j).toString();
}
textView.setText(myReport.toString()+"\n"+myReport.getTfrxReportPage().toString()+"\n"+myReport.getTfrxDataPage().toString()+"\n"+
myPage.toString()+"\n"+mTfrxMemoView+"\n"+mTfrxPictureView+"\n");
}
}
XmlUtils.class
public classXmlUtils {
public staticStringXMLHEADER="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
private staticXStreamxstream=null;
/**
* 将xml解析成指定泛型并返回
* xml转换为类(java)(对象)
*/
public static <T>TgetObject(String string, Class<T> clazz) {
XStream xstream =newXStream(newDomDriver());
xstream.processAnnotations(clazz);
xstream.ignoreUnknownElements();
return(T) xstream.fromXML(string);
}
/**
* 将指定类变成XML型数据返回
* 指定类(java)转换为xml
*/
public static <T> String getData(Object object, Class<T> cls) {
XStream xstream =newXStream();
xstream.processAnnotations(cls);
xstream.ignoreUnknownElements();
returnxstream.toXML(object);
}
/**
* 特殊字符替换
* strData String 原始字符串
* regex String 要替换的字符串
* replacement String 替代字符串
* XmlUtils.replaceString(XmlUtils.getData(dataRoot, SaveDataRoot.class), "__", "_");
*/
public static String replaceString(String strData, String regex, String replacement) {
if(strData ==null) {
return null;
}
intindex;
index = strData.indexOf(regex);
String strNew ="";
if(index >0) {
while(index >=0) {
strNew += strData.substring(0, index) + replacement;
strData = strData.substring(index + regex.length());
index = strData.indexOf(regex);
}
strNew += strData;
returnstrNew;
}
returnstrData;
}
public staticString decodeString(String strData) {
strData =replaceString(strData,"<","<");
strData =replaceString(strData,">",">");
strData =replaceString(strData,"'","'");
strData =replaceString(strData,""","\"");
strData =replaceString(strData,"&","&");
returnstrData;
}
}
MyTfrxDataPage.class
/**
* Created by dd on 2017-08-30.
* 因为xml数据解析时,名称区分大小写,所以特意把属性首字母大写,特此声明
*/
@XStreamAlias("TfrxDataPage")
public classMyTfrxDataPage {
@XStreamAsAttribute
privateStringName;
@XStreamAsAttribute
StringHeight;
@XStreamAsAttribute
StringLeft;
@XStreamAsAttribute
StringTop;
@XStreamAsAttribute
StringWidth;
publicString getName() {
returnName;
}
public voidsetName(String name) {
Name= name;
}
publicString getHeight() {
returnHeight;
}
public voidsetHeight(String height) {
Height= height;
}
publicString getLeft() {
returnLeft;
}
public voidsetLeft(String left) {
Left= left;
}
publicString getTop() {
returnTop;
}
public voidsetTop(String top) {
Top= top;
}
publicString getWidth() {
returnWidth;
}
public voidsetWidth(String width) {
Width= width;
}
}
MyTfrxMemoView.class
/**
* Created by dd on 2017-08-30.
* 因为xml数据解析时,名称区分大小写,所以特意把属性首字母大写,特此声明
*/
@XStreamAlias("TfrxMemoView")
public classMyTfrxMemoView {
@XStreamAsAttribute
privateStringName;
@XStreamAsAttribute
StringLeft;
@XStreamAsAttribute
StringTop;
@XStreamAsAttribute
StringWidth;
@XStreamAsAttribute
StringHeight;
publicString getName() {
returnName;
}
public voidsetName(String name) {
Name= name;
}
publicString getLeft() {
returnLeft;
}
public voidsetLeft(String left) {
Left= left;
}
publicString getTop() {
returnTop;
}
public voidsetTop(String top) {
Top= top;
}
publicString getWidth() {
returnWidth;
}
public voidsetWidth(String width) {
Width= width;
}
publicString getHeight() {
returnHeight;
}
public voidsetHeight(String height) {
Height= height;
}
}
MyTfrxPictureView.class
/**
* Created by dd on 2017-08-30.
* 因为xml数据解析时,名称区分大小写,所以特意把属性首字母大写,特此声明
*/
@XStreamAlias("TfrxPictureView")
public classMyTfrxPictureView {
@XStreamAsAttribute
StringName;
@XStreamAsAttribute
StringLeft;
@XStreamAsAttribute
StringTop;
@XStreamAsAttribute
StringWidth;
@XStreamAsAttribute
StringHeight;
publicString getName() {
returnName;
}
public voidsetName(String name) {
Name= name;
}
publicString getLeft() {
returnLeft;
}
public voidsetLeft(String left) {
Left= left;
}
publicString getTop() {
returnTop;
}
public voidsetTop(String top) {
Top= top;
}
publicString getWidth() {
returnWidth;
}
public voidsetWidth(String width) {
Width= width;
}
publicString getHeight() {
returnHeight;
}
public voidsetHeight(String height) {
Height= height;
}
}
MyTfrxReport.class
public classMyTfrxReport {
/*@XStreamImplicit(itemFieldName="TfrxReportPage")
private List<MyTfrxReportPage> TfrxReportPage;*/
// private MyTfrxDataPage TfrxDataPage;
@XStreamImplicit(itemFieldName = "TfrxDataPage")
privateList<MyTfrxDataPage>TfrxDataPage;
@XStreamImplicit(itemFieldName = "TfrxReportPage")
privateList<MyTfrxReportPage>TfrxReportPage;
@XStreamAsAttribute
privateStringVersion;
@XStreamAsAttribute
privateStringDotMatrixReport;
@XStreamAsAttribute
StringIniFile;
publicList<MyTfrxDataPage> getTfrxDataPage() {
returnTfrxDataPage;
}
public voidsetTfrxDataPage(List<MyTfrxDataPage> tfrxDataPage) {
TfrxDataPage= tfrxDataPage;
}
publicList<MyTfrxReportPage> getTfrxReportPage() {
returnTfrxReportPage;
}
public voidsetTfrxReportPage(List<MyTfrxReportPage> tfrxReportPage) {
TfrxReportPage= tfrxReportPage;
}
publicString getVersion() {
returnVersion;
}
public voidsetVersion(String version) {
Version= version;
}
publicString getDotMatrixReport() {
returnDotMatrixReport;
}
public voidsetDotMatrixReport(String dotMatrixReport) {
DotMatrixReport= dotMatrixReport;
}
publicString getIniFile() {
returnIniFile;
}
public voidsetIniFile(String iniFile) {
IniFile= iniFile;
}
}
MyTfrxReportPage.class
/**
* Created by dd on 2017-08-30.
* 因为xml数据解析时,名称区分大小写,所以特意把 属性 首字母大写,特此声明
*/
@XStreamAlias("TfrxReportPage")
public classMyTfrxReportPage {
@XStreamImplicit(itemFieldName = "TfrxMemoView")
privateList<MyTfrxMemoView>TfrxMemoView;
@XStreamImplicit(itemFieldName ="TfrxPictureView")
privateList<MyTfrxPictureView>TfrxPictureView;
@XStreamAsAttribute
private StringName;
@XStreamAsAttribute
StringPaperWidth;
@XStreamAsAttribute
StringPaperHeight;
publicString getName() {
returnName;
}
public voidsetName(String name) {
Name= name;
}
publicString getPaperWidth() {
returnPaperWidth;
}
public voidsetPaperWidth(String paperWidth) {
PaperWidth= paperWidth;
}
publicString getPaperHeight() {
returnPaperHeight;
}
public voidsetPaperHeight(String paperHeight) {
PaperHeight= paperHeight;
}
publicList<MyTfrxMemoView> getTfrxMemoView() {
returnTfrxMemoView;
}
public voidsetTfrxMemoView(List<MyTfrxMemoView> tfrxMemoView) {
TfrxMemoView= tfrxMemoView;
}
publicList<MyTfrxPictureView> getTfrxPictureView() {
returnTfrxPictureView;
}
public voidsetTfrxPictureView(List<MyTfrxPictureView> tfrxPictureView) {
TfrxPictureView= tfrxPictureView;
}
}
Person.class
/**
* Created by dd on 2017-08-30.
*/
@XStreamAlias("per")
public classPerson {
privateStringname;
privateStringid;
privateStringsex;
publicString getName() {
returnname;
}
public voidsetName(String name) {
this.name= name;
}
publicString getId() {
returnid;
}
public voidsetId(String id) {
this.id= id;
}
publicString getSex() {
returnsex;
}
public voidsetSex(String sex) {
this.sex= sex;
}
}
Tfrx.class
/**
* Created by dd on 2017-08-31.
*/
@XStreamAlias("TfrxReport")
public classTfrx {
Stringversion;
StringdotMatrixReport;
publicString getVersion() {
returnversion;
}
public voidsetVersion(String version) {
this.version= version;
}
publicString getDotMatrixReport() {
returndotMatrixReport;
}
public voidsetDotMatrixReport(String dotMatrixReport) {
this.dotMatrixReport= dotMatrixReport;
}
}
User.class
@XStreamAlias("user")
public classUser {
@XStreamAsAttribute
privateStringversion;
@XStreamAsAttribute
privateStringid;
@XStreamAsAttribute
privateStringpage;
privateStringage;
privateStringsex;
@XStreamAsAttribute
privateStringleft;
@XStreamAsAttribute
privateStringbottom;
publicString getLeft() {
returnleft;
}
public voidsetLeft(String left) {
this.left= left;
}
publicString getBottom() {
returnbottom;
}
public voidsetBottom(String bottom) {
this.bottom= bottom;
}
publicString getPage() {
returnpage;
}
public voidsetPage(String page) {
this.page= page;
}
publicString getVersion() {
returnversion;
}
public voidsetVersion(String version) {
this.version= version;
}
publicString getId() {
returnid;
}
public voidsetId(String id) {
this.id= id;
}
publicString getAge() {
returnage;
}
public voidsetAge(String age) {
this.age= age;
}
publicString getSex() {
returnsex;
}
public voidsetSex(String sex) {
this.sex= sex;
}
}
Users.class
@XStreamAlias("users")
public classUsers {
@XStreamImplicit(itemFieldName="user")
privateList<User>user;
@XStreamAsAttribute
privateStringid;
publicString getId() {
returnid;
}
public voidsetId(String id) {
this.id= id;
}
publicList<User> getUser() {
returnuser;
}
public voidsetUser(List<User> user) {
this.user= user;
}
@Override
publicString toString() {
return"Users["+id+"[user="+user+"]";
}
}
- android xstream
- Android Xstream
- android xstream 解析xml
- android 基础---> XStream 使用
- xstream
- xstream
- Xstream
- XStream
- xstream
- XStream
- XStream
- Xstream
- xstream
- XStream
- XStream
- xstream
- XStream
- xStream
- 注册表
- 深圳满意度调查:用户满意度指数提升 品牌形象成影响满意度首要因素
- 由于格式(format)多次namenode造成的集群id(ClusterID)不一致问题
- spring之bean工厂
- 4.springboot 全局异常处理
- Android Xstream
- JAVAEE
- 新闻FragmentPagerAdapter 类
- 判断是否联网
- R语言 地图漫谈
- 访问vm_cnetos 远程Redis服务。Connect to Remote Redis Server
- 网络判断
- ActiveMQ系列—ActiveMQ性能优化(下2)(消息存储方案 LevelDB)
- 开始我的博客生涯