Home  >  Article  >  Backend Development  >  Detailed introduction to Android's sample code for parsing XML files and generating XML files

Detailed introduction to Android's sample code for parsing XML files and generating XML files

黄舟
黄舟Original
2017-03-20 16:42:111899browse

ParsingXMLFile

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();
        }
 
    }

Generating XML file

//默认是没有换行的<br>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();
    }

Usage of XmlPullParser

The above is the detailed content of Detailed introduction to Android's sample code for parsing XML files and generating XML files. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn