sax

原创 2006年06月05日 18:07:00
方便起见,SAX API也提供了一个已经实现了ContentHandler接口的DefaultHandler适配器类。

一但实现了ContentHandler或者扩展了DefaultHandler类,你只需直接将XML解析器解析一个特定的文档即可。

我们的第一个例子扩展DefaultHandler将每个SAX事件打印到控制台。这将给你一个初步的映象,以说明什么SAX事件将会发生及以怎样的顺序发生。

作为开始,以下是将在我们的第一个示例中用到的XML文档样本:


<?xml version="1.0"?>
<simple date="7/7/2000" >
<name> Bob </name>
<location> New York </location>
</simple>


代码:
package xmltest;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import java.io.*;




public class SaxTest extends DefaultHandler {


   // 重载DefaultHandler类的方法
   // 以拦截SAX事件通知。
   //
        // 关于所有有效事件,见org.xml.sax.ContentHandler
   //
   public void startDocument( ) throws SAXException {
      System.out.println( "SAX Event: START DOCUMENT" );
   }

   public void endDocument( ) throws SAXException {
      System.out.println( "SAX Event: END DOCUMENT" );
   }

   public void startElement( String namespaceURI,
              String localName,
              String qName,
              Attributes attr ) throws SAXException {
         System.out.println( "SAX Event: START ELEMENT[ " +
                  localName + " ]" );

      // 如果有属性,我们也一并打印出来...
                for ( int i = 0; i < attr.getLength(); i++ ){
                   System.out.println( "   ATTRIBUTE: " +
                  attr.getLocalName(i) +
                  " VALUE: " +
                  attr.getValue(i) );
      }

   }

   public void endElement( String namespaceURI,
              String localName,
              String qName ) throws SAXException {
      System.out.println( "SAX Event: END ELEMENT[ " +
                  localName + " ]" );
   }

   public void characters( char[] ch, int start, int length )
                  throws SAXException {

      System.out.print( "SAX Event: CHARACTERS[ " );

      try {
         OutputStreamWriter outw = new OutputStreamWriter(System.out);
         outw.write( ch, start,length );
         outw.flush();
      } catch (Exception e) {
         e.printStackTrace();
      }

      System.out.println( " )" );

   }


   public static void main( String[] argv ){

      System.out.println( "Example1 SAX Events:" );
      try {

          //  SAXParserFactory  spFactory = SAXParserFactory.newInstance();
         // SAXParser sParser = spFactory.newSAXParser();


         // 建立SAX 2解析器...
         XMLReader xr = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");

         // 安装ContentHandler...
         xr.setContentHandler( new SaxTest() );

            // 解析文件...
         xr.parse( new InputSource(
               new FileReader( "exampleA.xml" )) );


      }catch ( Exception e )  {
         e.printStackTrace();
      }

   }

}


需下载xml解析器http://xml.apache.org/dist/xerces-j/Xerces-J-bin.2.5.0.zip

jdom解析xml:

php?p=865198#865198" target=_blank>http://chinaunix.net/forum/viewtopic.php?p=865198#865198
建议下载jdom8得包

asp?id=40633" width="1" height="1">

利用POI框架的SAX方式处理大数据2007版Excel(xlsx)

。。。。
  • rainyspring4540
  • rainyspring4540
  • 2016年02月26日 09:23
  • 4804

XML解析之一——SAX解析详解

SAX解析 XML文档 Java Web
  • feichexia
  • feichexia
  • 2010年12月10日 17:19
  • 2294

XML解析之SAX解析过程代码详解

上一篇谢了解析原理和过程,这里应用代码直观认识这个原理: 新建Demo1类: import java.io.File; import javax.xml.parsers.SAXParser; ...
  • qq_32059827
  • qq_32059827
  • 2016年05月31日 13:12
  • 1039

SAX解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui03...
  • ch656409110
  • ch656409110
  • 2013年09月24日 22:37
  • 10848

android 自学日记(六) ——SAX解析中换行问题解决

今天在写一个小项目的时候用到了SAX解析,遇到了一点小问题,网上找了好久都没有解决,最后还是自己发现了解决方法,特地和大家分享一下!...
  • Hubert_bing
  • Hubert_bing
  • 2016年05月05日 20:42
  • 837

DOM解析和SAX解析的区别

本文为转载,内容基本不变,格式用Markdown重排。 原文地址:DOM解析和SAX解析的区别 NO 区别 DOM解析 SAX解析 1 操作 将所有文件读取到内存中形成D...
  • hbwindy
  • hbwindy
  • 2016年05月11日 21:31
  • 3069

sax解析实现xml增删改

需求:      在jsp页面上展示树形结构,当选中某个节点时,可以新增该节点的子节点、删除该节点、修改该节点信息。      操作节点的时候,既操作数据库,也操作xml文件。先操作数据库,后操作...
  • a639735331
  • a639735331
  • 2017年06月14日 11:12
  • 568

XML解析api的对比(JAXB vs SAX)

1、http://stackoverflow.com/questions/7709928/jaxb-vs-dom-and-sax 2、http://www.javacodegeeks.com/201...
  • gjf281
  • gjf281
  • 2014年07月21日 20:10
  • 860

python sax方式解析xml

dom方式在解析xml数据时是将整个文档树加载到内存中,yin'ci
  • oopsangle
  • oopsangle
  • 2014年04月27日 22:05
  • 2454

利用Dom,Sax,Pull三种方式解析xml文件

最近找工作,看到许多公司的要求里都写了要会xml解析,所以就把之前的xml解析知识又重新回顾了一下,写个小例子. 解析xml文件常用的几种方式也就dom,sax,pull了,并且面试官经常问到的也是这...
  • qiang_xi
  • qiang_xi
  • 2015年11月29日 20:15
  • 1221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sax
举报原因:
原因补充:

(最多只允许输入30个字)