import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import android.util.Log;
public class MySax extends DefaultHandler {
private String loalname;
private String name;
private String age;
private String hobby;
private String id;
private String url;
// 文档开始
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
}
// 标签开始
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
super.startElement(uri, localName, qName, attributes);
loalname = localName;
if (localName.equals("person")) {
id = attributes.getValue("id");
url = attributes.getValue("url");
}
}
// 文档结束
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
}
// 标签结束
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
super.endElement(uri, localName, qName);
loalname="";
if(localName.equals("person")){
Log.e("TAG",id+"--"+url+"--"+name+"--"+age+"--"+hobby);
}
}
// 内容解析
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
super.characters(ch, start, length);
if (loalname.equals("name")) {
name = new String(ch, start, length);
}else if(loalname.equals("age")){
age = new String(ch, start, length);
}else if(loalname.equals("hobby")){
hobby = new String(ch, start, length);
}
}
}
package com.bawei.day22_sax;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import com.bawei.sax.MySax;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MySax mysax=new MySax();
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser parser = factory.newSAXParser();
parser.parse(getAssets().open("xxx.xml"), mysax);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
解析内容
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="1" url="www.zhangsan.com">
<name>zhangsan</name>
<age>20</age>
<hobby>打球</hobby>
</person>
<person id="2" url="www.lisi.com">
<name>lisi</name>
<age>25</age>
<hobby>打代码</hobby>
</person>
<person id="3" url="www.wangwu.com">
<name>wangwu</name>
<age>23</age>
<hobby>游泳</hobby>
</person>
<person id="5" url="www.zhaoliu.com">
<name>招六</name>
<age>22</age>
<hobby>游泳</hobby>
</person>
</persons>