android pull解析XML檔案

來源:互聯網
上載者:User

標籤:android   io   ar   os   java   for   檔案   on   art   

package com.example.pullxml;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlSerializer;import android.os.Environment;import android.test.AndroidTestCase;import android.util.Log;import android.util.Xml;public class PullXml extends AndroidTestCase{public void test() {writeXML();List<Person> personList = parserXML();for (Person person : personList) {Log.i("id", String.valueOf(person.getId()));Log.i("name", person.getName());Log.i("age", String.valueOf(person.getAge()));}}public void writeXML() {// 獲得序列化對象XmlSerializer serializer = Xml.newSerializer();List<Person> personList = getPersonList();try {File sdDir = Environment.getExternalStorageDirectory();File file = new File(sdDir, "persons.xml");FileOutputStream fos = new FileOutputStream(file);// 指定輸出位置和編碼serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);// <?xml version='1.0'// encoding='utf-8'// standalone='true' ?>serializer.startTag(null, "persons");// <persons>for (Person person : personList) {serializer.startTag(null, "person");serializer.attribute(null, "id", person.getId().toString());serializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");serializer.startTag(null, "age");serializer.text(String.valueOf(person.getAge()));serializer.endTag(null, "age");serializer.endTag(null, "person");}serializer.endTag(null, "persons");// </persons>serializer.endDocument();} catch (Exception e) {e.printStackTrace();}}public List<Person> parserXML() {List<Person> personList = null;Person person = null;Long id = null;// 獲得pull解析對象XmlPullParser parser = Xml.newPullParser();try {File sdDir = Environment.getExternalStorageDirectory();File file = new File(sdDir, "persons.xml");FileInputStream fis = new FileInputStream(file);parser.setInput(fis, "utf-8");// 獲得事件類型int eventType = parser.getEventType();while (eventType != XmlPullParser.END_DOCUMENT) {String tagName = parser.getName();// 獲得當前節點名稱switch (eventType) {case XmlPullParser.START_TAG:if ("persons".equals(tagName)) {personList = new ArrayList<Person>();} else if ("person".equals(tagName)) {person = new Person();id = Long.parseLong(parser.getAttributeValue(null, "id"));person.setId(id);} else if ("name".equals(tagName)) {person.setName(parser.nextText());} else if ("age".equals(tagName)) {person.setAge(Integer.parseInt(parser.nextText()));}break;case XmlPullParser.END_TAG:if("person".equals(tagName)){personList.add(person);}break;}eventType=parser.next();}} catch (Exception e) {e.printStackTrace();return null;}return personList;}public List<Person> getPersonList() {List<Person> personList = new ArrayList<Person>();for (int i = 0; i < 10; i++) {Person person = new Person((long) i, "liang" + i, i);personList.add(person);}return personList;}}class Person {private Long id;private String name;private Integer age;public Person(Long id, String name, Integer age) {super();this.id = id;this.name = name;this.age = age;}public Person() {super();}@Overridepublic String toString() {return "person [id=" + id + ", name=" + name + ", age=" + age + "]";}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}

android pull解析XML檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.