[안드로이드] 네트워크 - XML처리 - XML 파싱 ( DOM Parser, 핸들러 이용;비동기)
[참고] 관련포스트 URL [안드로이드] XML 파싱 실전예제 - XmlPullParser를 이용한 뉴스어플 만들...
blog.naver.com
[안드로이드 스튜디오] 내부 XML 파싱 - 1
어플 내부에 있는 XML 파일을 파싱하는 예제다. === student.xml === 홍길동 32 용인 이순신 31 서울 ..
link2me.tistory.com
Java에서 DocumentBuilder를 사용하여 중복 xml 태그 값을 구문 분석 할 수 없습니다.
고유 한 내부 태그가 하나있는 경우 XML 객체를 구문 분석 할 수 있습니다. 하지만 문제는 부모 태그에 두 개의 중복 태그가있을 때입니다. 두 태그 값을 모두 얻으려면 어떻게해야합니까? XML 문��
stackoverrun.com
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 62 63 64 65 66 67 68 | public ArrayList<Point> parseXml() { Log.i(TAG, "parser()"); ArrayList<Point> arrayList = new ArrayList<>(); //内部XMLファイル使う際に InputStream inputStream = getResources().openRawResource(R.raw.sample); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader reader = new BufferedReader(inputStreamReader); Point p = new Point(); try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlParser = factory.newPullParser(); xmlParser.setInput(reader); String tag; // TAGを保存のため //StringBuffer attr = new StringBuffer(); //Stringを保存と出力のため int eventType = xmlParser.getEventType(); //END TAGじゃないと Loopを回しながらParsingになる while (eventType != END_DOCUMENT) { switch (eventType) { case XmlPullParser.START_TAG: tag = xmlParser.getName(); //現タグ名を保存 if (tag.equals("add")) { //nameであるタグが入ると /*for (int index = 0; index < xmlParser.getAttributeCount(); index++) { int code = index + 1; if (xmlParser.getAttributeValue(index).equals("通信台数")) { count = Integer.parseInt(xmlParser.getAttributeValue(code)); } }*/ int count = 3; for (int index = 0; index < xmlParser.getAttributeCount(); index++) { Toast.makeText(getApplicationContext(), "value", Toast.LENGTH_LONG).show(); if (xmlParser.getAttributeValue(index).equals("給油ポイント" + count + " 表示位置")) { p.setPosition(xmlParser.getAttributeValue(index + 1)); } else if (xmlParser.getAttributeValue(index).equals("給油ポイント" + count + " 表示名")) { p.setPointNum(xmlParser.getAttributeValue(index + 1)); } arrayList.add(p); } } break; /* case XmlPullParser.END_TAG: String endTag = xmlParser.getName(); if (endTag.equals("beacon")) { arrayList.add(p); } break; */ }//End of switch eventType = xmlParser.next(); } }catch (Exception e) { e.printStackTrace(); } return arrayList; } | cs |
'Android' 카테고리의 다른 글
2차 작성(파싱함수 수정) (0) | 2020.07.15 |
---|---|
1차 작성 (0) | 2020.07.10 |
그리드레이아웃의 자식 뷰(버튼)의 속성(span)변경 (0) | 2020.07.08 |
레이아웃 작성 레퍼런스 (0) | 2020.07.03 |
C#서버와 안드로이드 통신 처리 참고 자료 (0) | 2020.07.02 |
댓글