读书人

Android读取XML资料(SAX)

发布时间: 2012-09-06 10:37:01 作者: rapoo

Android读取XML文件(SAX)

?

package com.xiva.service;import java.util.ArrayList;import java.util.List;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import com.xiva.domain.Person;public class XmlContentHandler extends DefaultHandler{private List<Person> personList;private Person person;private String perTag; public List<Person> getPersonList() {return personList;}@Overridepublic void startDocument() throws SAXException {// TODO Auto-generated method stubpersonList = new ArrayList<Person>();}@Overridepublic void characters(char[] ch, int start, int length)throws SAXException {if(person!=null){String data = new String(ch,start,length);if("name".equals(perTag)){person.setPersonName(data);}else if("age".equals(perTag)){person.setAge(data);}}}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {if("person".equals(localName)){person = new Person();person.setId(new Integer(attributes.getValue("id")));}perTag = localName;}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {if("person".equals(localName) && person!=null){personList.add(person);person = null;}perTag = null;}}

?package com.xiva.xml;

import java.io.InputStream;import java.util.List;import com.xiva.domain.Person;import com.xiva.service.SAXService;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.TextView;import android.widget.Toast;public class XMLActivity extends Activity {    /** Called when the activity is first created. */private static final String TAG = "XMLActivity";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        TextView text = (TextView)this.findViewById(R.id.content);        InputStream iStream = XMLActivity.class.getClassLoader().getResourceAsStream("person.xml");        List<Person> personList;try {personList = SAXService.readXML(iStream);        StringBuffer strB = new StringBuffer();        for(Person person:personList)        {        String str = person.toString();        strB.append(str);        }        text.setText(strB);}    catch(Exception e){Log.i(TAG, "Xml Load failure!");Toast.makeText(XMLActivity.this, "Xml Load failure!", 1).show();e.printStackTrace();}    }}

?完整代码见附件。

读书人网 >XML SOAP

热点推荐