Android에서 PULL 방식으로 XML 파일 분석 자세히 보기

2350 단어 xmlpull 해석
1. 기본적으로 안드로이드에서 xmlpull 방식으로 xml을 해석하는 것을 추천한다.xmlpull은 안드로이드에서뿐만 아니라javase에도 적용되지만,javase 환경에서 xmlpull이 의존하는 라이브러리, kxml2-2.3.0을 스스로 가져와야 합니다.jar,xmlpull_1_1_3_4c.jar. jar 패키지 다운로드 사이트http://www.xmlpull.org/http://kxml.sourceforge.net/둘째, xml에 대한 설명을 읽으면 숫자 0 START_DOCUMENT; xml로 읽는 종료 반환 숫자 1 END_DOCUMENT ; xml에 대한 시작 태그를 읽고 숫자 2 START_태그가 xml에 대한 종료 태그를 읽으면 숫자 3 END_태그가 xml로 읽은 텍스트는 숫자 4 TEXT를 반환합니다
 
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person id="001">
<name>XY1</name>
<age>22</age>
</person>
<person id="002">
<name>XY2</name>
<age>22</age>
</person>
</people>
 
public class PersonService
{
/**
* XML
*
* @param xml XML
*/
public List<Person> getPeople(InputStream xml) throws Exception
{
List<Person> lst = null;
Person person = null;
// pull
XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
// XmlPullParser
XmlPullParser pullParser = pullParserFactory.newPullParser();
// XML
pullParser.setInput(xml, "UTF-8");
//
int event = pullParser.getEventType();
//
while (event != XmlPullParser.END_DOCUMENT) //
{
//
String nodeName = pullParser.getName();
switch (event)
{
case XmlPullParser.START_DOCUMENT: //
lst = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG: //
if ("person".equals(nodeName))
{
String id = pullParser.getAttributeValue(0);
person = new Person();
person.setId(id);
}
if ("name".equals(nodeName))
{
String name = pullParser.nextText();
person.setName(name);
}
if ("age".equals(nodeName))
{
int age = Integer.valueOf(pullParser.nextText());
person.setAge(age);
}
break;
case XmlPullParser.END_TAG: //
if ("person".equals(nodeName))
{
lst.add(person);
person = null;
}
break;
}
event = pullParser.next(); //
}
return lst;
}
}

좋은 웹페이지 즐겨찾기