중화사전망 - 자전 검색 - 어떻게 해석할 것인가. 안드로이드에 pullparse 가 있는 XML 파일?

어떻게 해석할 것인가. 안드로이드에 pullparse 가 있는 XML 파일?

풀 파서는 SAX 파서와 유사하게 작동합니다. 시작 요소 및 끝 요소 이벤트와 같은 유사한 이벤트를 제공합니다. Parser.next () 를 사용하여 다음 요소를 입력하고 해당 이벤트를 트리거할 수 있습니다. SAX 와 달리 당기기 구문 분석기에서 생성된 이벤트는 메서드가 아닌 숫자이므로 스위치를 사용하여 관심 있는 이벤트를 처리할 수 있습니다. 요소가 구문 분석을 시작하면 parser.nextText () 메서드를 호출하여 Text 유형의 다음 노드 값을 얻을 수 있습니다.

예제를 보여 주어 당기기 메커니즘을 사용하여 PULL 파일을 구문 분석하는 방법을 보여 드리겠습니다. 먼저 다음 항목의 디렉토리 구조를 살펴보십시오.

다음 단계를 수행합니다.

[1] student.xml 이라는 새 XML 파일도 만들고 assets 디렉토리에 배치합니다. Student.xml 파일의 내용은 다음과 같습니다.

[html] 일반 텍스트 보기

& lt? Xmlversion = "1.0" encoding = "utf-8"? & gt

& lt 학생>

& lt 학생 id = "20110806100" >

& ltname & gt 샤오밍'/name >

& lt 나이 "22 & lt/age & gt;;

& lt 성> 남성'/sex >

& lt/student & gt;;

& lt 학생 id = "20110806101">

& ltname & gt 샤오리.

& lt 나이 "24 & lt/age & gt;;

& lt 성> 남성'/sex >

& lt/student & gt;;

& lt 학생 id = "20110806102" >

& ltname & gt 샤오리'/name >

& lt 나이 "21< /age >

& lt 성> 여성' sex>

& lt/student & gt;;

& lt/ 학생>

[2] XML 파일의 노드 디렉토리에 따라 해당 엔티티 클래스를 만들어 해당 구문 분석 정보를 저장합니다. 패키지: com.andyidea.entity 아래에 새 Student.java 클래스를 작성합니다

[html] 일반 텍스트 보기

패키지 com.andyidea.entity;

공과생 {

개인 문자열 id;

개인 문자열 이름

개인 연령

사현성애

공용 문자열 getId(){

Id 를 반환합니다

}

공용 void 집합 id (문자열 id ){

This.id = id

}

공용 문자열 getName(){

이름을 반환합니다

}

공용 void 컬렉션 이름 (문자열 이름) {

This.name = name

}

Public int getAge(){

나이로 돌아가다

}

공용 void 스토리지 (int age ){

This.age = 나이;

}

공용 문자열 getSex(){

회성

}

Public void setSex(String sex ){

This.sex = sex

}

}

[3] PULL 을 사용하여 XML 파일을 구문 분석하는 도구 클래스 ParserByPULL.java 를 정의합니다.

[html] 일반 텍스트 보기

패키지 com.andyidea.util;

Java.io.inputstream 가져오기

Java.util.arraylist 가져오기

Java.util.list 가져오기

Org.xmlpull.v 1 을 가져옵니다. XmlPullParser

Org.xmlpull.v 1 을 가져옵니다. XmlPullParserFactory

Android.util.xml 을 가져옵니다.

Com.andyidea.entity.student 를 가져옵니다.

공용 클래스 ParserByPULL {

//XmlPullParser 를 사용하여 XML 파일을 분석합니다.

공용 정적 목록< 학생> get students (inputstream instream) 가 Throwable 을 던졌습니다

{

목록< 학생> 학생 = null

Student mStudent = null

//= = = = = = = = = XmlPullParser 를 만드는 두 가지 방법 = = = = = =

//메서드 1: 팩토리 클래스 XmlPullParserFactory 를 사용합니다.

Xmlpull parserfactory pull factory = xmlpull parserfactory.newinstance ();

Xmlpullparserparser = pullfactory.newpullparser ();

//방법 2: 안드로이드에서 제공하는 유틸리티 클래스인 android.util.Xml 을 사용합니다.

//XML pullparserparser = xml.newpullparser ();

//파일 입력 스트림 구문 분석

Parser. set input(inStream, "utf-8");

//첫 번째 이벤트 생성

Inteventtype = parser.geteventtype ();

//문서 끝 이벤트가 아닌 한 항상 순환합니다.

While (이벤트 유형! =XmlPullParser 입니다. END_DOCUMENT)

{

스위치 (이벤트 유형)

{

//시작 문서 이벤트 트리거

Case XmlPullParser. 시작 _ 문서:

Students = 새 배열 목록< 학생> ();

깨뜨리다

//시작 요소 이벤트 트리거

Case XmlPullParser. 시작 태그:

//분석기가 현재 가리키는 요소의 이름을 가져옵니다.

String name = parser.getname ();

만약 ("학생". 같음 (이름))

{

//파서를 통해 id 의 요소 값을 가져오고 학생의 id 를 설정합니다.

Mstudent = new student ();

Mstudent.setid (parser.getattributevalue (0));

}

If(m student! =null)

{

If ("이름") 입니다. 같음 (이름))

{

//분석기가 현재 가리키는 요소의 다음 텍스트 노드 값을 가져옵니다.

Mstudent.setname (parser.nexttext ());

}

만약 ("나이". 같음 (이름))

{

//분석기가 현재 가리키는 요소의 다음 텍스트 노드 값을 가져옵니다.

Mstudent.setage (new short (parser.nexttext ());

}

만약 ("성") 입니다. 같음 (이름))

{

//분석기가 현재 가리키는 요소의 다음 텍스트 노드 값을 가져옵니다.

Mstudent.setsex (parser.nexttext ());

}

}

깨뜨리다

//끝 요소 이벤트 트리거

Case XmlPullParser. 끝 태그:

//

만약 ("학생". 같음 (parser.getName ()))

{

Students.add (mstudent);

MStudent = null

}

깨뜨리다

기본값:

깨뜨리다

}

이벤트 유형 = parser.next ();

}

학교로 돌아가는 학생

}