android中创建XML

     在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上面操作,所以还要加上权限:

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

最后的成果:

你可能感兴趣的:(XMLSerializer,anndroid.xml)