카테고리 없음
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 |