public void paresxml(View view) {
ArrayList<Sms>sList = null;
String tag ;
Sms sms = null;
try {
XmlPullParser paser = XmlPullParserFactory.newInstance().newPullParser();//获取pull解析对象
paser.setInput(new FileInputStream(new File(Environment.getExternalStorageDirectory(),"sms.xml")), "utf-8");//设置文件源
int eventState = XmlPullParser.END_DOCUMENT;//设置读到文件尾的标记
while ((eventState = paser.next())!=XmlPullParser.END_DOCUMENT) {//读取一个tag只要不是文件尾
tag = paser.getName();//获取tag
if (eventState==XmlPullParser.START_TAG) {
if (tag.equals("smses")) {
sList = new ArrayList<Sms>();
}else if (tag.equals("sms")) {
sms = new Sms();
}else if (tag.equals("address")) {
sms.setAddress(paser.nextText());//获取tag内的内容
}else if (tag.equals("time")) {
sms.setTime(paser.nextText());
}else if (tag.equals("body")) {
sms.setBody(paser.nextText());
}
}else if (eventState==XmlPullParser.END_TAG) {
if (tag.equals("sms")) {
sList.add(sms);
}
}
}
tv_sms.setText(sList.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void creatxml(View view) {
XmlSerializer newSerializer = Xml.newSerializer();//获取xml串行化对象
try {
newSerializer.setOutput(new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"sms.xml")), "utf-8");//设置输出文件路径和编码
newSerializer.startDocument("utf-8", true);//开始一个xml文件头
newSerializer.startTag(null, "smses");//开始第一层tag 写一个tag头应该马上写一个tag结束标记 防止忘记
for (int i = 0; i < 30; i++) {
newSerializer.startTag(null, "sms");
newSerializer.startTag(null, "address");
newSerializer.text("132"+i);//设置tag内容
newSerializer.endTag(null, "address");
newSerializer.startTag(null, "time");
newSerializer.text(new Date().getTime()+"");
newSerializer.endTag(null, "time");
newSerializer.startTag(null, "body");
newSerializer.text("你好啊,来呀,互相伤害呀");
newSerializer.endTag(null, "body");
newSerializer.endTag(null, "sms");
}
newSerializer.endTag(null, "smses");
newSerializer.endDocument();//结束这个文件
Toast.makeText(this, "生成完成", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}