package com.example.xml;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.content.Context;
import android.content.res.AssetManager;
public class PullParserXMLDemo {
private Context context;
private InputStream inputStream;
public PullParserXMLDemo(Context context) {
super();
this.context = context;
}
public InputStream getXML(String fileName) throws IOException{
AssetManager assetManager=context.getAssets();
inputStream=assetManager.open(fileName);
return inputStream;
}
public List<Map<String, String>> readXML(InputStream inputStream,String encoding) throws XmlPullParserException, IOException{
List<Map<String, String>> listmap=null;
Map<String, String> map=null;
XmlPullParserFactory xmlPullParserFactory=XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser=xmlPullParserFactory.newPullParser();
xmlPullParser.setInput(inputStream, encoding);
int eventType=xmlPullParser.getEventType();
while (eventType!=XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
listmap=new ArrayList<Map<String,String>>();
break;
case XmlPullParser.START_TAG:
if ("book".equals(xmlPullParser.getName())) {
map=new HashMap<String, String>();
int count=xmlPullParser.getAttributeCount();
if (count>1) {
String _id=xmlPullParser.getAttributeValue(0);
String _author=xmlPullParser.getAttributeValue(1);
map.put("_id", _id);
map.put("_author", _author);
}else {
String _id=xmlPullParser.getAttributeValue(0);
map.put("_id", _id);
}
}
if ("name".equals(xmlPullParser.getName())&&map!=null) {
String _name=xmlPullParser.nextText();
map.put("_name", _name);
}
if ("price".equals(xmlPullParser.getName())&&map!=null) {
String _price=xmlPullParser.nextText();
map.put("_price", _price);
}
break;
case XmlPullParser.END_TAG:
if ("book".equals(xmlPullParser.getName())) {
listmap.add(map);
map=null;
}
break;
default:
break;
}
eventType=xmlPullParser.next();
}
return listmap;
}
}
PullParserXMLDemo
最新推荐文章于 2018-11-11 21:30:21 发布