`

android解析生成xml文件

阅读更多
代码备份,仅供参考学习。
项目代码见附件
package com.example.dimensadapterutil;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.xmlpull.v1.XmlSerializer;

import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	
	private Button btn_read, btn_write; 
    private List<Map<String, String>> listData = new ArrayList<Map<String, String>>();
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		btn_read = (Button)findViewById(R.id.btn_read);
		btn_read.setOnClickListener(new Btn_ReadClick());
		
		btn_write = (Button)findViewById(R.id.btn_write);
		btn_write.setOnClickListener(new Btn_WriteClick());
	}
	
	private class Btn_ReadClick implements OnClickListener{

		@Override
		public void onClick(View v) {
			
			XmlResourceParser xrp = getResources().getXml(R.xml.dimens);
			try {
				while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT){
					if(xrp.getEventType() == XmlResourceParser.START_TAG){
						Map<String, String> map = new HashMap<String, String>();
						String tagName = xrp.getName();
						if(tagName.equals("dimen")){
							String name = xrp.getAttributeValue(null, "name");
							map.put("name", name);
							String value = xrp.nextText();
							map.put("value", value);
						}
						listData.add(map);
					}
					xrp.next();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	private class Btn_WriteClick implements OnClickListener{

		@Override
		public void onClick(View v) {
			if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
				File filepath = new File(Environment.getExternalStorageDirectory()+"/dimen.xml");
				try {
					writeData(filepath);
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		private void writeData(File file) throws IOException{
			if(!file.exists()){
				file.createNewFile();
			}
			FileOutputStream fos = new FileOutputStream(file);
			XmlSerializer serializer = Xml.newSerializer();
			try {
				 serializer.setOutput(fos, "UTF-8");   
				 serializer.startDocument("UTF-8", true);   
				 serializer.startTag(null, "resources");          
				 if(listData.size() > 1){
					 for(int i = 0; i < listData.size(); i++){
						if(!listData.get(i).isEmpty()){
							 serializer.startTag(null, "dimen");
							 serializer.attribute(null, "name", listData.get(i).get("name"));
							 serializer.text(listData.get(i).get("value"));
							 serializer.endTag(null, "dimen");
						}
					 }
					 serializer.endTag(null, "resources");   
					 serializer.endDocument();
				 }
			} catch (Exception e) {
				e.printStackTrace();
			} finally{
				fos.flush();
			}
		}
	}
}



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics