您的位置:首页 > 其它

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

2016-03-08 15:44 399 查看
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开发,而且工作还没着落,又不考研,以后的路应该挺难走的,此文为人生第一篇博客文章,特此标记,供以后回味蹒跚成长之路。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: