android解析生成xml文件
16lz
2022-04-17
代码备份,仅供参考学习。
项目代码见附件
项目代码见附件
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>>();@Overrideprotected 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{@Overridepublic 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{@Overridepublic 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();}}}}
更多相关文章
- 动态调整Android(安卓)surfaceView 视图上下层问题
- Android(安卓)NoTitle 不显示标题
- android 防止反编译重签名,C实现代码
- android实现涂鸦,保存涂鸦后的图片,清屏
- Android最便捷banner轮播图实现原理及代码
- 【实战】android网页源代码查看器
- lyricView--歌词显示控件
- android EditText 只能输入无法删除的解决方法
- Android(安卓)实现不同字体颜色的TextView实现代码