在android中创建XML文档只需要一个接口XMLSerializer,使用该接口中的方法就可以轻松的创建XML文档。在这个接口中定义了操作XML需要的各种方法。
1.setOutput():设置文件的写出地址
2.startDocument(String encoding,boolean standalong):向文件中写<?xml ?>头,并且指定编码方式和是否是standalong.
3.startTag(String ns,String name):设置开始标签
4.attribute( ):设置标签属性
5.text():写入文本信息
6.endTag():结束标签
7.endDocument():结束文本
下面是一个简单的demo,在sdcard中写入一个xml文件
package com.example.android_xmlserializer;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.xmlpull.v1.XmlSerializer;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.util.Xml;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String fileName="";
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
fileName = Environment.getExternalStorageDirectory()
+ "/poem.xml";
}
else
{
fileName+="/poem.xml";
}
File f = new File(fileName);
try {
f.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
try {
FileOutputStream fos = new FileOutputStream(f);
XmlSerializer serializer = Xml.newSerializer();
//设置文件输出位置
serializer.setOutput(fos, "utf-8");
//开始xml声明,这个方法必须在setOutput()方法之后调用
serializer.startDocument(null, true);
//开始poem标签
serializer.startTag(null, "poem");
//设置lang属性,这里有一点需要注意,serializer始终代表上一个tag,所以不用声明多个serializer
serializer.attribute(null, "lang", "chinese");
serializer.startTag(null, "title");
//
serializer.text("静夜思");
serializer.endTag(null, "title");
serializer.startTag(null, "author");
serializer.text("李白");
serializer.endTag(null, "author");
serializer.startTag(null, "content");
serializer.text("床前明月光,疑是地上霜,举头望明月,低头思故乡");
serializer.endTag(null, "content");
serializer.endDocument();
serializer.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
既然是在sdcard上面操作,所以还要加上权限:
最后的成果: