Android XML 파일 해석 pull 해상도 기
XML 해석 에는 세 가지 방법 이 있 습 니 다.
SAX 해상도
DOM 해상도
pull 해상도
여기 서 저 는 주로 PULL 해상도 기 해석 XML 을 쓰 고 있 습 니 다. Android 에 pull 해상도 기 를 통합 시 켰 기 때문에 측면 에서 pull 해상도 기 를 사용 하 는 것 을 추천 합 니 다.
분석 파일 을 assets 디 렉 터 리 에 저장 하여 XML 내용 을 분석 합 니 다.
liming
30
zahngxiaoxiao
25
분석 클래스 PersonService 클래스 코드:
package com.example.administrator.foundationdemo.xmlparsepull.service;
import android.util.Xml;
import com.example.administrator.foundationdemo.xmlparsepull.domain.Person;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2016/12/2.
*/
public class PersonService {
public static List getPersonXML (InputStream xml) throws Exception{
List persons = null;
Person person = null;
// pull ==》 XmlPullParserFactory.newInstance().newPullParser();
XmlPullParser pullParser = Xml.newPullParser();// Xml pull
pullParser.setInput(xml,"UTF-8");// pull XML
/** :
* pull char[] = {-<..xml..>-}
* pull ( “”) ,
* XML ,
*/
int exent = pullParser.getEventType();//
while (exent != XmlPullParser.END_DOCUMENT){
switch (exent){
case XmlPullParser.START_DOCUMENT://DOCUMENT( )
persons = new ArrayList();
break;
case XmlPullParser.START_TAG: // TAG
if ("person".equals(pullParser.getName())){
int id = Integer.parseInt(pullParser.getAttributeValue(0));
person = new Person();
person.setId(id);
}
if ("name".equals(pullParser.getName())){
String name = pullParser.nextText();
person.setName(name);
}
if ("age".equals(pullParser.getName())){
int age = Integer.parseInt(pullParser.nextText());
person.setAge(age);
}
break;
case XmlPullParser.END_TAG: // TAG
if ("person".equals(pullParser.getName())){
persons.add(person);
person = null;
}
break;
}
// ,PLL ,
// (.next())API,
exent = pullParser.next();
}
return persons;
}
}
클래스 를 분석 하여 하위 클래스 를 생 성 하 는 person 클래스 코드:
package com.example.administrator.foundationdemo.xmlparsepull.domain;
/**
* Created by Administrator on 2016/12/2.
*/
public class Person {
private int id;
private String name ;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Activity 코드:
package com.example.administrator.foundationdemo.xmlparsepull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.example.administrator.foundationdemo.R;
import com.example.administrator.foundationdemo.xmlparsepull.domain.Person;
import com.example.administrator.foundationdemo.xmlparsepull.service.PersonService;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
public class XMLParsePullActivity extends AppCompatActivity {
TextView xml_parse_text ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
xmlParse();
}
private void init(){
setContentView(R.layout.activity_xmlparse_pall);
xml_parse_text = (TextView) findViewById(R.id.xml_parse_text);
}
private void xmlParse(){
try {
InputStream xml = this.getResources().getAssets().open("person.xml");// assets XM
List persons = PersonService.getPersonXML(xml);
for (Person person : persons ){
String text = xml_parse_text.getText()+"
id:"+person.getId()+"
name:"+person.getName()+"
age:"+person.getAge();
Log.d("FLY",text);
xml_parse_text.setText(text);
}
} catch (Exception e) {
Log.d("FLY"," "+e);
e.printStackTrace();
}
}
}
당신들 에 게 도움 이 되 기 를 바 랍 니 다. 감사합니다!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.