SAX方式解析XML类型文件
前言
在使用此方式对XML文件进行解析的时候,有几个要点需要注意一下
Sax解析时是从上到下对标签进行挨个扫描,一个处理类(saxservice)只能处理一种标签
-
处理类 需要继承 DefaultHandler
-
需要重写方法
- startDocument
- endDocument
- startElement
- endElement
- 如果需要输出中间的文本信息 则要重写 characters 方法
-
在主方法中必须要写的
//1、获取解析工厂 SAXParserFactory factory = SAXParserFactory.newInstance(); //2、从解析工厂获取解析器 SAXParser parse = factory.newSAXParser(); //3.在使用parse方法传入路径和自己定义的处理类 parse.parse(filepath,saxservice);
实例:
.xml类型页面
<menubar>
<tismenu iconSclass="z-icon-th" label="资产" permission="menu:baseassets">
<menupopup>
<tismenuitem label="账户" id="AbsAcct" permission="menuitem:acct" />
<tismenuitem label="分期" id="AbsMpur" permission="enuitem:absmpur" />
<tismenuitem label="结果查询" id="Result" permission="menuitem:resultsearch" />
</menupopup>
</tismenu>
首先需要定义entry实体类
用于接收信息 如label 、permission、orderno等,赋予get、set、construct此处不演示了
定义SaxTisMenu类
/**
* @Description Sax解析Tismenu标签
* @Author wangshiqin
* @Date 2021/5/21
* ===========功能描述==============
*/
//使用SAX解析必须的步骤
public class SaxTisMenu extends DefaultHandler {
//定义用于存放一级菜单信息的类和集合
private Node4Menu node4menu;
private List<Node4Menu> list;
private int count=0