第一种
在本地生成AppuserManager.xml文件,并且把对象转成了xml格式
package com.example.hasee.myxml;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.widget.TextView;
import org.xmlpull.v1.XmlSerializer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
List list;
private TextView tv_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text = (TextView)findViewById(R.id.tv_text);
list = new ArrayList();
AppuserManager ap = new AppuserManager("appuser","*","ID=1","updatetime desc",0);
list.add(ap);
}
public void click(View v){
//使用序列化器生成xml文件
//1、得到xml序列化器对象
XmlSerializer xs = Xml.newSerializer();
//2、设置序列化器的输出流
File file = new File(Environment.getExternalStorageDirectory(),"AppuserManager.xml");
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
xs.setOutput(fos,"utf-8");
//3、开始生成xml文件
xs.startDocument("utf-8",true);
xs.startTag(null,"Root");
// for (int i = 0; i < list.size(); i++) {
xs.startTag(null,"SubModelNode");
xs.attribute("","ModelName","AppUser_mod");
xs.startTag(null,"TableName");
xs.text(list.get(0).getTableName());
xs.endTag(null,"TableName");
xs.startTag(null,"Fields");
xs.attribute("","DataType","String");
xs.text(list.get(0).getFields());
xs.endTag(null,"Fields");
xs.startTag(null,"Where");
xs.attribute("","String");
xs.endTag(null,"Where");
xs.startTag(null,"OrderBy");
xs.attribute("","String");
xs.text(list.get(0).getOrderBy());
xs.endTag(null,"OrderBy");
xs.startTag(null,"PageIndex");
xs.attribute("","Int32");// xs.attribute 一定要在xs.text 的上面否则就报错
xs.text(list.get(0).getPageIndex()+"");
xs.endTag(null,"PageIndex");
xs.startTag(null,"PageSize");
xs.attribute("","Int32");
xs.text(list.get(0).getPageSize()+"");
xs.endTag(null,"PageSize");
xs.endTag(null,"SubModelNode");
// }/
xs.endTag(null,"Root");
xs.endDocument();
tv_text.setText(fos.toString());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
写进去,在读出来,参考http://www.tuicool.com/articles/A7BNz2i
第二种:只是把对象转成了 xml格式,并不写在文件里
package com.example.hasee.myxml;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import com.thoughtworks.xstream.XStream;
/**
* 创建日期:${date} ${time}
* 项目名称:${project_name}
*
* @author Jiang Shan Shan
* @version 1.0
* @since JDK 1.7.0_79
* 文件名称: ${file_name}
* 类说明:
*/
public class MainActivity2 extends Activity{
private TextView tv_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text = (TextView)findViewById(R.id.tv_text);
AppuserManager ap = new AppuserManager("appuser",0);
/*//把对象转化为 XML
XStream xstream1 = new XStream();
String string = xstream1.toXML( ap ) ;
System.out.println( "sss"+ string );
tv_text.setText(string);*/
//把对象转化为 XML,并且设置别名
XStream xstream2 = new XStream();
xstream2.alias( "Root",AppuserManager.class) ; //修改别名
String string2 = xstream2.toXML( ap ) ;//把最外层 标签com.example.hasee.myxml 改成Root
System.out.println( string2 );
tv_text.setText(string2);
}
}
第二种方法基于工具类,网上可以下载 xstream-1.4.7.jar 文件。。。。
第二种方法的效率特别的高,而且所需写代码很少,优先选择第二种
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!