XML文件解析 笔记

用SAX(simple API for XML)解析方式逐行扫描文档,可以在任一时刻停止解析,但是操作复杂、使用其SAX向文档添加或者删除内容比较困难。它既是一种接口,也是一个软件包。

SAX工作原理:对文档进行顺序扫描,当扫描到文档开始与结束、元素开始与结束,产生事件通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。
文档处理事件、元素事件、DTD或Schema事件、错误事件
SAX接口:ContentHandler、ErrorHandler、DTDHandler、EntityResolver
(1)创建事件处理程序
MyContentHandler类继承DefaultHandler实现其中的方法:startDocument、endDocument、 startElement(String( 命名空间),String(不包含前缀的标签名),String(包含前缀的标签名),Attributes(属性))、 endElement(String,String,String,Attributes)、characters(char[](读取的标签所有内 容),int(从哪一位开始读取),int(读取内容的长度))
(2)创建SAX解析器
SAXParseFactory factory = SAXParseFactory.newIntance();
XMLReader reader = factory.newSAXParse().getXMLReader();
(3)将事件处理程序分配给解析器
reader.setContentHandler(new MyContentHandler());//设置内容处理器,其中MyContentHandler类中定义接口中的各种方法
(4)对文档进行解析,将每个事件发送给处理程序
reader.parse(new InputSourse(new StringReader(resultStr)));//将读取的数据直接放到StringReader对象中,StringReader专门用于以流的方式读取字符串
resultStr为网络上下载的文件被存储为String类型
原文地址:https://www.cnblogs.com/Gaojiecai/p/2136310.html