前沿
jdk自身的解析xml的工具方式dom解析
和sax解析
,开发人员应该耳熟能详了。但是对于开发者并不是非常友好,经常要写很长的繁琐代码,现在有一个开源工具基于事件驱动
去解析xml文件,使用起来非常清晰易解。
就是commons-digester
。
Commons Digester
Apache Commons Digester 一 (基础内容、核心API)
官方文档
核心思想就是事件驱动
, 模式
,规则
,当解析的文档刚好满足模式
时,就会依次执行注册到模式上的规则
, begin
和body
方法按照注册顺序依次执行,end
方法倒序执行。
JoranConfigurator
JoranConfigurator是logback解析配置文件的一个工具类,它解析xml的思路灵感正是来源于 Commons Digester,但是又不尽相同。 Commons Digester
的概念中有 隐式地表达了 规则由模式和规则组成的含义
, 尽管这不是它的意图,但是它的api确实在这方面可读性不够好,比如
Digester.addRule(String pattern, Rule rule)
方法。
JoranConfigurator在这一方面做了些改进, 规则由模式和动作组成(a rule consists of a pattern and an action)
。
作为对比
- Commons Digester和JoranConfigurator底层都使用sax进行解析
- sax解析的处理核心类
DefaultHandler
在前者框架下的实现类是Digerster
,而在Joran
中的实现类是SaxEventRecorder