介绍
这篇文章给大家分享的是有关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文件
二、解析本地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文件