详细介绍Android 解析XML文件和生成XML文件的示例代码

解析xml文件

public static void initXML(Context context) {        //can't create in /data/media/0 because permission         //can create in /sdcard/hotel        File mSettings = new File(HOTEL_PATH_XML);        if (!mSettings.exists()) {            mSettings.mkdirs();        }        File settings = new File(mSettings,"settings.xml");        Log.i("XmlPullParser-----settings", settings+"+1+");        if (!settings.exists()) {            try {                Log.i("XmlPullParser-----settings", settings+"+2+");                settings.createNewFile();                initSettings(settings);            } catch (IOException e) {                e.printStackTrace();                return;            }            return;        }                 try {            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();            factory.setNamespaceAware(true);            XmlPullParser xpp = factory.newPullParser();            xpp.setInput(new FileInputStream(settings), "utf-8");            int eventType = xpp.getEventType();            while (eventType != XmlPullParser.END_DOCUMENT) {                Log.i("XmlPullParser-----TAG", eventType+"");                if (eventType == XmlPullParser.START_TAG) {                    String tag = xpp.getName();                    Log.i("XmlPullParser-----TAG", "tag---------"+tag+"");                    if (tag.equals("item")) {                        String id = xpp.getAttributeValue(null, "id");                        String value = xpp.getAttributeValue(null, "value");                        if (id.equals("server")) {                            sServerAddr = value;                        } else if (id.equals("hotel")) {                            sHid = value;                        } else if (id.equals("room")) {                            sRoomNum = value;                        }                    }                }                eventType = xpp.next();            }            Log.i("XmlPullParser-----TAG", eventType+"exist the xunhuan");        } catch (XmlPullParserException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }     }

生成XML文件

//默认是没有换行的
public static void initSettings(final File settings) { new Thread(new Runnable() { @Override public void run() { FileOutputStream fos = null; try { fos = new FileOutputStream(settings); XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(fos, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "config"); serializer.startTag(null, "category"); serializer.attribute(null, "name", "hot"); // server serializer.startTag(null, "item"); serializer.attribute(null, "id", "server"); serializer.attribute(null, "value", ""); serializer.endTag(null, "item"); // hid serializer.startTag(null, "item"); serializer.attribute(null, "id", "hotel"); serializer.attribute(null, "value", ""); serializer.endTag(null, "item"); // room serializer.startTag(null, "item"); serializer.attribute(null, "id", "room"); serializer.attribute(null, "value", ""); serializer.endTag(null, "item"); serializer.endTag(null, "category"); serializer.endTag(null, "config"); serializer.endDocument(); serializer.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } }).start(); }

XmlPullParser 的使用

以上就是详细介绍Android 解析XML文件和生成XML文件的示例代码的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1428960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 01:48:20
下一篇 2025年12月17日 01:48:51

相关推荐

发表回复

登录后才能评论
关注微信