加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SAX解析XML

发布时间:2020-12-16 05:48:07 所属栏目:百科 来源:网络整理
导读:public class SaxTest { @SuppressWarnings("unchecked") public static void main(String[] args) throws Exception { SaxTest s=new SaxTest(); // 1.创建解析工厂 SAXParserFactory factory = SAXParserFactory.newInstance(); // 2.得到解析器 SAXParser
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,length)); } if("grade".equals(currentTag)){ student.setGrade(Double.parseDouble(new String(ch,length))); } } @Override public void endElement(String arg0,String name) throws SAXException { if(name.equals("student")){ list.add(student); student=null; } currentTag=null; //这一步不能少 } public List getStudents() { return list; } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读