Lucene 与Digester结合
1.Digester简介:
解析XML有两个基本方法,一个是DOM(Document Object Model)解析,这个方法把XML文件看做一颗树,把整个文档读入内存来解析。另一个方法就是SAX()解析,这种解析是依据事件来解析XML文件的。Digester使用SAX来解析XML文档,但是直接使用SAX比较复杂,所以Digester提供了一些高级API来处理SAX事件,从而为开发人员减轻负担。
2.Digester引入了三个重要的概念:元素匹配模式、处理规则和对象栈。
元素匹配模式使XML元素和规则处理相关联,举一个例子:
<datasources> 'datasources'
<datasource> 'datasources/datasource'
对象栈就是规则处理中需要操作的对象。对象既可以手动也可以通过规则处理从栈中添加或删除(push,pop)
3.处理规则:
首先,我们需要实例化一个Digester对象,把需要的对象添加到对象栈中,然后添加一系列处理规则,最后解析这个文件。
4.具体实现:
Digester的解析类:AddressBookParser.java
Digester的测试类:AddressBookSearcher.java
4.Digester与Lucene的结合
DigesterMarriesLucene.java,测试依然可用AddressBookSearcher.java类进行