中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XML的創建和解析(4)

發布時間:2020-07-08 12:46:17 來源:網絡 閱讀:273 作者:秋寒526 欄目:開發技術

一丶XML的創建

  1. 手動創建(保存到sd卡)

    String status = Environment.getExternalStorageState();
            if (status.equals(Environment.MEDIA_MOUNTED)) {
                // 獲取sd卡的路徑
                String path = Environment.getExternalStorageDirectory()
                        + "/sms.xml";
                // 創建file對象
                File file = new File(path);
                // 創建輸出流對象
                try {
                    FileOutputStream fos = new FileOutputStream(file);
                    StringBuilder sb = new StringBuilder();
                    sb.append("<?xml version='1.0' encoding='UTF-8' ?>");
                    sb.append("<Smses>");
                    for (int i = 0; i < list.size(); i++) {
                        Sms sms = list.get(i);
                        sb.append("<sms>");
                        sb.append("<address>" + sms.getAddress() + "</address>");
                        sb.append("<body>" + sms.getBody() + "</body>");
                        sb.append("<date>" + sms.getDate() + "</date>");
                        sb.append("</sms>");
                    }
                    sb.append("</Smses>");
                    fos.write(sb.toString().getBytes());
                    fos.close();
                    Toast.makeText(this, "創建xml文件成功", 0).show();
                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(this, "創建xml文件失敗", 0).show();
                }
            }else{
                Toast.makeText(this, "sd卡不可用", 0).show();
            }

  2. 調用系統的api創建

    String status = Environment.getExternalStorageState();
            if (status.equals(Environment.MEDIA_MOUNTED)) {
                // 獲取sd卡的路徑
                String path = Environment.getExternalStorageDirectory()
                        + "/sms.xml";    
                //創建xml文件的生成器
                try {
                    XmlSerializer serialiaer = Xml.newSerializer() ;
                    FileOutputStream os = new FileOutputStream(path) ;
                    serialiaer.setOutput(os, "UTF-8") ;
                    serialiaer.startDocument("UTF-8", true) ;
                    serialiaer.startTag(null, "Smses") ;
                     for (int i = 0; i < list.size(); i++) {
                        serialiaer.startTag(null, "sms") ;
                        
                        serialiaer.startTag(null, "address") ;
                        serialiaer.text(list.get(i).getAddress()) ;
                        serialiaer.endTag(null, "address") ;
                        
                        serialiaer.startTag(null, "body") ;
                        serialiaer.text(list.get(i).getBody()) ;
                        serialiaer.endTag(null, "body") ;
                        
                        serialiaer.startTag(null, "date") ;
                        serialiaer.text(list.get(i).getDate()) ;
                        serialiaer.endTag(null, "date") ;
                        
                        serialiaer.endTag(null, "sms") ;
                    }
                     serialiaer.endTag(null, "Smses") ;
                    serialiaer.endDocument() ;
                    Toast.makeText(this,"生成xml文件成功",0).show() ;             
                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(this,"生成xml文件失敗",0).show() ;
                }         
            }else{
                Toast.makeText(this,"sd卡不可用,請檢查sd的狀態",0).show() ;
            }

二丶XML的解析

// 加載文件
        try {
//            FileInputStream fis = new FileInputStream(
//                    "/data/data/com.xunfang.pull/weather.xml");
            InputStream fis = MainActivity.class.getClassLoader().getResourceAsStream("weather.xml") ;
            // 生成xml的pull解析器
            XmlPullParser pull = Xml.newPullParser();
            pull.setInput(fis, "UTF-8");
            int type = pull.getEventType();
            Weather weather = null;
            while (type != XmlPullParser.END_DOCUMENT) {
                // 判斷
                switch (type) {
                    case XmlPullParser.START_TAG:
                        // 拿到標簽的名字
                        String tagName = pull.getName();
                        if ("channel".equals(tagName)) {
                            weather = new Weather();
                            weather.setId(pull.getAttributeValue(0));
                        }
                        if ("city".equals(tagName)) {
                            weather.setName(pull.nextText());
                        }
                        if ("temp".equals(tagName)) {
                            weather.setTemp(pull.nextText());
                        }
                        if ("wind".equals(tagName)) {
                            weather.setWind(pull.nextText());
                        }
                        break;
                    case XmlPullParser.END_TAG:
                        String name = pull.getName();
                        if ("channel".equals(name)) {
                            // 將對象放到集合中
                            list.add(weather);
                        }
                        break;
                }
                // 獲取下一個事件對象
                type = pull.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    //打印出來
        for (int i = 0; i < list.size(); i++) {
            Weather w = list.get(i);
            System.out.println("城市名稱:" + w.getName());
            System.out.println("城市id:" + w.getId());
            System.out.println("城市風力:" + w.getWind());
            System.out.println("城市氣溫:" + w.getTemp());
            System.out.println("---------------------------------");
        }



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和顺县| 武隆县| 平利县| 襄樊市| 乌苏市| 吉林市| 嘉荫县| 津南区| 正蓝旗| 阜新| 蓬莱市| 淳安县| 彩票| 启东市| 蒙自县| 玉环县| 鹿邑县| 普兰县| 三原县| 玉龙| 石家庄市| 伊川县| 潮州市| 辰溪县| 连州市| 永福县| 南丰县| 永泰县| 东辽县| 宣武区| 比如县| 新宁县| 郯城县| 卢湾区| 刚察县| 乐昌市| 内丘县| 黎平县| 赣榆县| 同德县| 永丰县|