黑马程序员技术交流社区

标题: SAX解析xml的步骤 [打印本页]

作者: 从黑到白的马    时间: 2016-1-20 13:44
标题: SAX解析xml的步骤
本帖最后由 从黑到白的马 于 2016-1-20 13:46 编辑

很高兴又和大家分享了[qq]451704940[/qq]


[1] 先构建工厂

       SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();   
[2] 通过工厂获取sax实例
    SAXParser saxParser = saxParserFactory.newSAXParser();
  [2.1]准备事件处理器(注意:此处也可以使用匿名内部类:new DefaultHander(){})


  1. //定义事件的处理器
  2.         class MyDefaultHandler extends DefaultHandler{
  3.                
  4.                 //  接收文档开始的通知。
  5.                 @Override
  6.                 public void startDocument() throws SAXException {
  7.                         super.startDocument();
  8.                         
  9.                         System.out.println("文档开始");
  10.                         
  11.                 }
  12.                
  13.                 // 接收元素开始的通知。
  14.                 @Override
  15.                 public void startElement(String uri, String localName, String qName,
  16.                                 Attributes attributes) throws SAXException {
  17.                         super.startElement(uri, localName, qName, attributes);
  18.                         
  19.                         System.out.println("startElement");
  20.                 }
  21.                
  22.                 //接收元素中字符(文本)数据的通知
  23.                 @Override
  24.                 public void characters(char[] ch, int start, int length)
  25.                                 throws SAXException {
  26.                         super.characters(ch, start, length);
  27.                         String content = new String(ch, start, length);
  28.                         if (content!=null&&content.trim().length()>0) {
  29.                                 
  30.                                 System.out.println("characters--文本"+content);
  31.                         }
  32.                         
  33.                         
  34.                         
  35.                         
  36.                 }
  37.                
  38.                 //接收元素结束的通知。
  39.                 @Override
  40.                 public void endElement(String uri, String localName, String qName)
  41.                                 throws SAXException {
  42.                         super.endElement(uri, localName, qName);
  43.                         System.out.println("endElement");
  44.                 }
  45.                
  46.                 //接收文档结束的通知。
  47.                 @Override
  48.                 public void endDocument() throws SAXException {
  49.                         super.endDocument();
  50.                         
  51.                         System.out.println("文档结束");
  52.                 }
  53.                
  54.                
  55.         }
复制代码
[3]开始解析xml
  saxParser.parse("bookstore.xml", new MyDefaultHandler());








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2