Android如何实现向本地写入一个XML文件和解析XML文件

  介绍

这篇文章给大家分享的是有关Android如何实现向本地写入一个XML文件和解析XML文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在网络存储过程中有很多时候会遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比较多的方法是将解析和SAX解析,但是我一般只用拉解析、下面就向cd卡写入一个XML文件,然后再使用拉解析的方法对文件进行解析。

<强>一、向SD卡中写入一个XML文件:

/* *   ,*向SD卡写入一个XML文件   *大敌;   ,* @param  v   ,*/public  void  savexml (View  v), {   ,   try  {   File  File =, new 文件(Environment.getExternalStorageDirectory (),   “persons.xml");   FileOutputStream  fos =, new  FileOutputStream(文件);//,获得一个序列化工具   XmlSerializer  serializer =, Xml.newSerializer ();   serializer.setOutput(安全系数,“utf-8");//,设置文件头   serializer.startDocument (“utf-8",,真的);   serializer.startTag (null,,“persons");   for  (int 小姐:=,0;,小姐:& lt;, 10;,我+ +),{   serializer.startTag (null,,“person");   serializer.attribute (null,,“id",, String.valueOf(我));//,写姓名   serializer.startTag (null,,“name");   serializer.text(“张三“,+,i);   serializer.endTag (null,,“name");//,写性别   serializer.startTag (null,,“gender");   serializer.text(“男“,+,i);   serializer.endTag (null,,“gender");//,写年龄   serializer.startTag (null,,“age");   serializer.text (“1“, +, i);   serializer.endTag (null,,“age");   ,   serializer.endTag (null,,“person");   }   serializer.endTag (null,,“persons");   serializer.endDocument ();   fos.close ();   Toast.makeText (MainActivity.this,“写入成功,,,0),告诉();   },catch  (Exception  e), {   e.printStackTrace ();   Toast.makeText (MainActivity.this,“写入失败“,,0),告诉();   }   ,   }

1,设置XML文件保存的地址,2,获得一个序列化工具,3,写XML文件的头,4,循环写入信息。

最后得到的XML文件

 Android如何实现向本地写入一个XML文件和解析XML文件

二、解析本地XML文件

/* *   ,*读取SD卡中XML文的件,使用拉解析   *大敌;   ,* @param  v   ,*/public  void  readxml (View  v), {   ,   try  {   File  path =, new 文件(Environment.getExternalStorageDirectory (),   “persons.xml");   FileInputStream  fis =, new  FileInputStream(路径);   ,//,获得拉解析器对象   XmlPullParser  parser =, Xml.newPullParser ();//,指定解析的文件和编码格式   parser.setInput (fis,“utf-8");   ,   int  eventType =, parser.getEventType();,//,获得事件类型   ,   String  id =,空;   String  name =,空;   String  gender =,空;   String  age =,空;   while  (eventType  !=, XmlPullParser.END_DOCUMENT), {   String  tagName =, parser.getName();,//,获得当前节点的名称   ,   switch  (eventType), {   case  XmlPullParser.START_TAG://,当前等于开始节点,& lt; person>   if  (“persons" .equals (tagName)), {,//& lt; persons>   },else  if  (“person" .equals (tagName)), {,//& lt; person  id=?“比;   时间=id  parser.getAttributeValue (null,,“id");   },else  if  (“name" .equals (tagName)), {,//& lt; name>   时间=name  parser.nextText ();   }else  if  (“gender" .equals (tagName)), {,//& lt; age>   时间=gender  parser.nextText ();   },else  if  (“age" .equals (tagName)), {,//& lt; age>   时间=age  parser.nextText ();   }   打破;   case  XmlPullParser.END_TAG://, & lt;/persons>   if  (“person" .equals (tagName)), {   Log.i(标签,,“id——产生绯闻;,+,id);   Log.i(标签,,“名字——产生绯闻,+,名称);   Log.i(标签,“性别——产生绯闻;,+,性别);   Log.i(标签,,“年龄——产生绯闻;,+,年龄);   }   打破;   默认值:   打破;   }   时间=eventType  parser.next();,//,获得下一个事件类型   }   },catch  (Exception  e), {   e.printStackTrace ();   最后}{      }

Android如何实现向本地写入一个XML文件和解析XML文件