package com.example.xml;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.content.Context;
import android.content.res.AssetManager;
import android.util.Log;
public class SAXParserXMLDemo {
private Context context;
private AssetManager assetManager;
public SAXParserXMLDemo(Context context) {
super();
this.context = context;
}
public InputStream writeXML(String xmlName) throws Exception{
InputStream inputStream=null;
assetManager = context.getAssets();
inputStream=assetManager.open(xmlName);
return inputStream;
}
public void readXML(InputStream inputStream) throws Exception{
SAXParserFactory saxParserFactory=SAXParserFactory.newInstance();
SAXParser saxParser=saxParserFactory.newSAXParser();
SAXHandle saxHandle=new SAXHandle("book");
saxParser.parse(inputStream, saxHandle);
List<Map<String, String>> list=saxHandle.rr();
Log.i("aa", list.size()+"");
}
}
class SAXHandle extends DefaultHandler{
private List<Map<String, String>> listMap=null;
private Map<String, String> map=null;
private String currentTag;
private String currentValue;
private String rootName;
public SAXHandle(String rootName) {
super();
this.rootName = rootName;
}
@Override
public void startDocument() throws SAXException {
listMap=new ArrayList<Map<String,String>>();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if (qName.equals(rootName)) {
map=new HashMap<String, String>();
}
currentTag=qName;
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if (currentTag!=null&&map!=null) {
currentValue=new String(ch, start, length);
if (currentValue!=null&&!currentValue.trim().equals("")&&!currentValue.trim().equals("\n")) {
map.put(currentTag, currentValue);
}
}
currentTag=null;
currentValue=null;
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (qName.equals(rootName)) {
listMap.add(map);
map=null;
}
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
}
public List<Map<String, String>> rr(){
return listMap;
}
}
SAXParserXMLDemo
最新推荐文章于 2021-02-16 17:45:23 发布