- START/END_DOCUMENT는 처음과 마지막에 등록해서 depth와 0
- START/END_TAG는 <></>일때 등록하여 、depth는、START에서 인클리먼트, END 다음에 데크리멘트됩니다.
- name은 <></>에서 뿐만아니라 셋팅 됩니다.
올해는 머신러닝이다.
XmlPullParser 사용법 펌 본문
XmlPullParser(XML解析(パース))
XML을분석하는것은 org.xmlpull.v1패키지의 XmlPullParser클래스를 사용합니다.
XmlPullParser의 인스턴스를 얻는 방법은?
android.util패키지의 XML클래스의 static메소드에 있는 newPullParser()를 호출합니다.
final XmlPullParser xmlPullParser = Xml.newPullParser();
또는 og.xmlpull.v1패키지의 XmlPullParserFactory클래스의 static메소드에 있는 XmlPullParserfactory.newInstance()를 호출해 XmlPullParserFactory의 인스턴스를 취득한 후
같은 인스턴스의 newPullParser()를 호출합니다.
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); final XmlPullParser xmlPullParser = factory.newPullParser(); |
XmlPullParser인스턴스의 분석하고싶은 XML을 셋트(셋팅)하는 방법은?
XmlPullParser클래스의 setInput(Reader in)、
또는 setInput(InputStream inputStream, String inputEncoding)을 호출한다.
예를들면, 이 클래스의 동작을 이해하기 위해서, 아래와 같이 코딩해 보는 것도 좋습니다.
(헬프와 같은 예입니다)
xmlPullParser.setInput(new StringReader("<foo>Hello World!</foo>"));
XmlPullParser인스턴스에 분석을 진행하는 방법은?
XmlPullParser클래스의 next()를 호출하면 반환값에 EventType와 호출되는 아래의 정수값을 얻을 수 있습니다.
- XmlPullParser.START_DOCUMENT
- XmlPullParser.START_TAG
- XmlPullParser.TEXT
- XmlPullParser.END_TAG
- XmlPullParser.END_DOCUMENT
또, XmlPullParser클래스의 getDepth()를 호출하면, 현재분석하고있는 계층을 얻는 것도 가능하며,
getName()을 호출하면 앨리먼트네임도 얻을 수 있습니다.
예를 들면, 아래와 같은 XML을 분석한다면
<lv1>
a
<lv2 title="test">
b
</lv2>
c
</lv1>
아래와 같은 결과가 나옵니다.
depth | eventType | name | |
0 | START_DOCUMENT | null | |
1 | START_TAG | lv1 | // <lv1> |
1 | TEXT | null | // a |
2 | START_TAG | lv2 | // <lv2> |
2 | TEXT | null | // b |
2 | END_TAG | lv2 | // </lv2> |
1 | TEXT | null | // c |
1 | END_TAG | lv1 | // </lv1> |
0 | END_DOCUMENT | null | // |
정리하면,
마지막으로 ..
중요한값은 얻었으나, TEXT의 값을 얻기 위해서는 getText(), 속성을 얻는 방법은 getAttributeValue()를 호출하면 얻을 수 있습니다.
[출처] [Android] XML PullParser|작성자 쪼꼬
'Android > Tip&Tech' 카테고리의 다른 글
[팁] Activity에서 XML을 이용해 Tab을 사용시 쉬운 팁 (0) | 2011.03.11 |
---|---|
[안드로이드팁]텍스트뷰에서 글자에 선긋기 팁 (0) | 2011.03.11 |
[펌]좌우로 드래그 하는 안드로이스드 (1) | 2011.03.07 |
[펌]TextSwitcher 관련 (0) | 2011.01.25 |
안드로이드에서 단위테스트를 위한 Junit 사용하기 (2) (0) | 2011.01.24 |