xml&dom_sax_dom4j学习笔记(一)SAX解析XML文件

来源:互联网 发布:python编程入门经典 编辑:程序博客网 时间:2024/05/16 08:08

SAX 解析XML:

         SAX与DOM不同,在解析XML文件时是边解析边处理的。解析过程为先生产一个解析工厂(SAXParserFactory),由工厂生产一个解析器(SAXParser),再由解析器生产阅读器(XMLReader),通过阅读器的parser(String systemId)方法解析XML文件。

SAX2核心的处理程序基类有四个ContentHandler、ErrorHandLer、DTDHandler、EntityResolver,其中ContentHandler是SAX所有应用程序的主要接口。当阅读器解析到标签头/尾(startElement、endElement),标签内容(Characters)等数据时会自动调用对应函数并把标签数据以参数形式传入,供程序员处理。应注意的是,处理器要在解析文件前注册。

DefaultHandler是上述四个基类的实现类,提供所有回调的默认函数的实现。可根据开发需重写仅需实现的部分接口。


遇到问题:为阅读器注册了BeanListHander处理器类,在获取下XML文件中的姓名信息时,发现控制台输出两次name,第二个为空。

发现SAX 解析时空格、换行都会作为characters信息被解析,触发characters()函数,可是此时的element_tag仍为”student”,所以第二次的换行触发把name的内容清除了。

解决:在endElement()函数中把element_tag清空,问题解决。


 --PS:大四才开始学习web开发,而且工作还没着落,又不考研,以后的路应该挺难走的,此文为人生第一篇博客文章,特此标记,供以后回味蹒跚成长之路。

0 0