카테고리 없음

xmlParse()

Birthmark 2020. 7. 13. 14:03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
   public ArrayList<Point> parseXml() {
        Log.i(TAG, "parser()");
        //内部XMLファイル使う際に
        InputStream inputStream = getResources().openRawResource(R.raw.sample);
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
        BufferedReader reader = new BufferedReader(inputStreamReader);
        Point p = new Point();
        ArrayList<Point> points = new ArrayList<>();
        try {
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser xmlParser = factory.newPullParser();
            xmlParser.setInput(reader);
            String startTag; // TAGを保存のため
            int add = 0;
 
            int eventType = xmlParser.getEventType();
            //END TAGじゃないと Loopを回しながらParsingになる
 
            while (eventType != END_DOCUMENT) {
                switch (eventType) {
                    case START_TAG:
                        startTag = xmlParser.getName(); //現タグ名を保存
 
                        if (startTag.equals("add")) { //nameであるタグが入ると
                            if (xmlParser.getAttributeValue(0).contains("表示名")) {
                                p.setPointNum(xmlParser.getAttributeValue(1));
                                add++;
                                Log.i(TAG, "表示名 add :" + add);
                                Log.i(TAG, "表示名 index :" + index / 2);
 
 
                            }
                            else if (xmlParser.getAttributeValue(0).contains("表示位置")) {    //ポイントの最後のパラメタ
                                p.setPosition(xmlParser.getAttributeValue(1));
                                add++;
                                Log.i(TAG, "表示名 add :" + add);
                                Log.i(TAG, "表示位置 index :" + index / 2);
                                if (add != 0 && add % 2 == 0) {
 
                                    setPointLocation(p); //ポイントボタン作成メソッド
                                }
 
                            }
                            index++;
                        }
                        break;
 
                }
 
 
                eventType = xmlParser.next();
 
            }
        } catch (IOException | XmlPullParserException e) {
            e.printStackTrace();
            Log.i("TAG""exception");
        }
        return points;
    }
 
 
cs