Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件

XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,读写XML成为Android开发中一项重要的技能。以下是在Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件的方法。 首先,我们需要读写sd卡,所以要加入权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

布局文件如下

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
android:id="@+id/btnsave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/anniu"
**android:onClick="SaveBtn"**
/>
android:id="@+id/btnread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnsave"
android:text="@string/anniu"
**android:onClick="ReadBtn"**
/>

java代码如下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.widget.Toast;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
***
* 生成xml文件,并保存到sd卡
*/
public void SaveBtn(View v) {
try {
XmlSerializer serializer = Xml.newSerializer();
File file = new File(Environment.getExternalStorageDirectory(),
"info");
FileOutputStream os = new FileOutputStream(file);
serializer.setOutput(os, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "list");//
serializer.startTag(null, "user");//
serializer.attribute(null, "id", "1");//id=1>
serializer.startTag(null, "username");//
serializer.text("用户名:554849416");//用户名:554849416
serializer.endTag(null, "username" );//
serializer.startTag(null, "password");//
serializer.text( "密码:12345678");//密码:12345678
serializer.endTag(null, "password");//
serializer.endTag(null, "user");//
serializer.endTag(null, "list");//
serializer.endDocument();
os.close();
Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_LONG).show();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
Toast.makeText(MainActivity.this, "保存失败", Toast.LENGTH_LONG).show();
}
}
/*
* pull解析xml文件
*/
public void ReadBtn(View v) throws Exception{
String str="";
File file = new File(Environment.getExternalStorageDirectory()+"/info.xml");
InputStream in = new FileInputStream(file);
XmlPullParser parser = Xml.newPullParser();
parser.setInput(in,"utf-8");
int type = parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT ){
switch (type) {
case XmlPullParser.START_TAG:
if("list".equals(parser.getName())){
}else if("user".equals(parser.getName())){
str += parser.getAttributeValue(0);
}else if("username".equals(parser.getName())){
str += parser.nextText();
}else if("password".equals(parser.getName())){
str += parser.nextText();
}
break;
case XmlPullParser.END_TAG:
if("user".equals(parser.getName())){
}
default:
break;
}
type = parser.next();
}
Toast.makeText(MainActivity.this, str, Toast.LENGTH_LONG).show();
}**
}

“`

以上就是xml读写的简单使用,代码很简单就不做解释了。

你可能感兴趣的:(Android学习笔记)