`

sax解析xml

阅读更多

   

DOM是基于文档驱动的,也是读取和操作XML文件的标准文档对象模型。DOM有什么优点呢?那就是简单方便,易于开发,随机存取,可以随意的修改DOM树从而达到修改XML文档的目的。当然啦,缺点也是显著的,就是它不适宜操纵大型的文档,毕竟要在内存中操作,所以可能造成低效,迟缓。

      SAX是基于事件驱动的,也就是说它不需要读入整个文档,文档的读入过程就是SAX的解析过程。所谓的事件驱动机制就是基于回调机制的程序运行方法,我们也可以称为授权事件模型。那么,SAX有什么优点呢?就是适宜操纵任意大小的文档,灵活,开发任意可以用SAX建立自己的模型,但是SAX不支持修改。

      好了,下面我们就来看看如何用SAX操作我们的XML文档吧。

 

一般创建一个SAX对象有以下几个步骤:

 

 

Java代码 复制代码 收藏代码
  1. // 建立SAX解析工厂   
  2. SAXParserFactory factory = SAXParserFactory.newInstance();   
  3. // 创建SAX解析器   
  4. SAXParser saxParser = factory.newSAXParser();   
  5. // 创建事件处理器   
  6. MyHandler handler = new MyHandler();   
  7. // 绑定文件和事件处理者   
  8. saxParser.parse(new File("test.xml"), handler);  

 

而事件处理器我们一般是自己定义,它继承自DefaultHandler,而我们一般覆写它的五种方法

 

 

Java代码 复制代码 收藏代码
  1. //开始文档   
  2. startDocument()    
  3. //开始元素   uri 为命名空间 localName为The local name (without prefix);qNamwThe qualified name (with prefix), attribute 为属性
  4. startElement(String uri, String localName, String qName,   
  5.             Attributes attributes)   
  6. //元素内容   new String(ch).subString(start,start,length);
  7. characters(char[] ch, int start, int length)   
  8. //结束元素   
  9. endElement(String uri, String localName, String qName)   
  10. //结束文档   
  11. endDocument()   

 

这样我们就可以完成XML文档的解析了,对于具体在MyHandler中如何操作就看我们的具体需求了。呵呵,好了,这就是SAX解析XML,是不是很简单。

<script type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics