SAX解析XML
来源:互联网 发布:mmorpg推荐 知乎 编辑:程序博客网 时间:2024/06/01 09:03
public class SaxTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
SaxTest s=new SaxTest();
// 1.创建解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
// 2.得到解析器
SAXParser sp= factory.newSAXParser();
//3.得到读取器
XMLReader reader = sp.getXMLReader();
//4.设置内容处理器
BeanListHandler handle=s.new BeanListHandler();
reader.setContentHandler(handle);
//5.读取xml文档内容
reader.parse("src/exam.xml");
List<Student> list=handle.getStudents();
System.out.println(list);
}
class BeanListHandler extends DefaultHandler{
private List list = new ArrayList();
private String currentTag;
private Student student;
@Override
public void startElement(String arg0, String arg1, String name,
Attributes arg3) throws SAXException {
currentTag=name;
if("student".equals(currentTag)){
student = new Student();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if("name".equals(currentTag)){
student.setName(new String(ch,start,length));
}
if("location".equals(currentTag)){
student.setLocation(new String(ch,start,length));
}
if("grade".equals(currentTag)){
student.setGrade(Double.parseDouble(new String(ch,start,length)));
}
}
@Override
public void endElement(String arg0, String arg1, String name)
throws SAXException {
if(name.equals("student")){
list.add(student);
student=null;
}
currentTag=null; //这一步不能少
}
public List getStudents() {
return list;
}
}
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
SaxTest s=new SaxTest();
// 1.创建解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
// 2.得到解析器
SAXParser sp= factory.newSAXParser();
//3.得到读取器
XMLReader reader = sp.getXMLReader();
//4.设置内容处理器
BeanListHandler handle=s.new BeanListHandler();
reader.setContentHandler(handle);
//5.读取xml文档内容
reader.parse("src/exam.xml");
List<Student> list=handle.getStudents();
System.out.println(list);
}
class BeanListHandler extends DefaultHandler{
private List list = new ArrayList();
private String currentTag;
private Student student;
@Override
public void startElement(String arg0, String arg1, String name,
Attributes arg3) throws SAXException {
currentTag=name;
if("student".equals(currentTag)){
student = new Student();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if("name".equals(currentTag)){
student.setName(new String(ch,start,length));
}
if("location".equals(currentTag)){
student.setLocation(new String(ch,start,length));
}
if("grade".equals(currentTag)){
student.setGrade(Double.parseDouble(new String(ch,start,length)));
}
}
@Override
public void endElement(String arg0, String arg1, String name)
throws SAXException {
if(name.equals("student")){
list.add(student);
student=null;
}
currentTag=null; //这一步不能少
}
public List getStudents() {
return list;
}
}
}
0 0
- [XML] SAX解析XML
- 【XML】SAX解析XML
- XML解析(SAX解析)
- XML解析:SAX解析
- Study SAX《SAX解析XML》
- 使用SAX解析XML
- 解析xml之--SAX
- SAX解析XML
- SAX解析XML
- xml文件解析-SAX
- 解析xml之--SAX
- 解析xml之--SAX
- 使用SAX解析XML
- XML学习《SAX解析》
- SAX解析XML例子
- java sax 解析 xml
- 使用SAX解析XML
- sax解析xml实例
- 我的办公助手(OfficeAssist) V0.1: 一个能查看农历和节假日的小工具,带提醒功能
- ubuntu安装eclipse
- Android 手势密码分析
- uva1398
- contiki 源码分析之tunslip6(七)(exampes)
- SAX解析XML
- ZOJ 1586 QS Network prim优化模板
- C++ primer plus 第六版 课后答案 8.4
- 九度1048(判断三角形)
- MSP430F5529LP+CC3000学习过程(二)——与PC互传数据
- 平凡人中的小小的愿望
- c++编程思想(一)-------存取控制是编译器行为
- MFC 改变窗口类名
- C++中Format用法