1、隶属于Jakarta Commons项目的一个子项目提供了一个简单的上层接口来将XML类型的文档映射为JAVA对象。
2、DigesterXMLHandler类用来解析XML格式的文档。
public class DigesterXMLHandler implements DocumentHandler{
private Digester dig;
private static Documentdoc;
publicDigesterXMLHandler(){
dig=new Digester();
dig.setValidating(false);
//首先创建DigesterXMLHandler实例
dig.addObjectCreate("address-book",DigesterXMLHandler.class);
//找到contact子元素,创建一个contact类实例
dig.addObjectCreate("address-book/contact",Contact.class);
//当Digester找到<contact>参数的type属性时我们就需要设置Contact实例的type属性。
dig.adSetProperties("address-book","type","type");
//设置几个规则,用来设置contact属性。
dig.addCallMethod("address-book/contact/name","setName",0);
dig.addCallMethod("address-book/contact/address","setAddress",0);
dig.addCallMethod("address-book/contact/city","setCity",0);
dig.addCallMethod("address-book/contact/province","setProvince",0);
dig.addCallMethod("address-book/contact/postalcode","setPostalcode",0);
dig.addCallMethod("address-book/contact/country","setCountry",0);
dig.addCallMethod("address-book/contact/telephone","setTelephone",0);
dig.addSetNext("address-book/contact","populateDocument");
}
public sychronized DocumentgetDocument(InputStream is) throws DocumentHandlerException{
try{
dig.parse(is);//开始解析XML格式的InputStream 输入流
}
catch (IOException e){
throw new DocumentHandlerException("cannot parse XMLdocument",e);
}
catch (SAXExceptoin e){
throw new DocumentHandlerException("cannot parse XMLdocument",e);
}
return doc;
}
public voidpopulateDocument(Contact contact){
//将已经取出的各Field组装到Lucene的Document对象里
doc=new Document();
doc.add(Field.Keyword("type",contact.getType()));
doc.add(Field.Keyword("name",contact.getName()));
doc.add(Field.Keyword("address",contact.getAddress()));
doc.add(Field.Keyword("city",contact.getCity()));
doc.add(Field.Keyword("province",contact.getProvince()));
doc.add(Field.Keyword("postalcode",contact.getPostalcode()));
doc.add(Field.Keyword("country",contact.getCountry()));
doc.add(Field.Keyword("telephone",contact.getTelephone()));
}
//重载了每个contact实例入口的JAVABEAN类
public static class Contact{
private String type;
private String name;
private String address;
private String city;
private String province;
private String postalcode;
private String country;
private String telephone;
public void setType(String newType){
type=newType();
}
public String getType(){
return type;
}
public String setName(String newName){
name=newName;
}
public String getName(){
returnname;
}
..........//依次设置city、province、postalcode、country、telephone
..........
}
public static voidmain(String[] args) throws Exception{
DigesterXMLHandler handler=new DigesterXMLHandler();
Document doc=
handler.getDocument(new FileInputStream(new File(args[0]));
System.out.println(doc);
}
}
相关推荐
赠送jar包:lucene-analyzers-smartcn-7.7.0.jar; 赠送原API文档:lucene-analyzers-smartcn-7.7.0-javadoc.jar; 赠送源代码:lucene-analyzers-smartcn-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-...
赠送jar包:lucene-core-7.2.1.jar; 赠送原API文档:lucene-core-7.2.1-javadoc.jar; 赠送源代码:lucene-core-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.2.1.pom; 包含翻译后的API文档:lucene...
赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...
赠送jar包:lucene-analyzers-common-6.6.0.jar; 赠送原API文档:lucene-analyzers-common-6.6.0-javadoc.jar; 赠送源代码:lucene-analyzers-common-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-...
- **Core模块**:这是Lucene的核心,包含了索引和搜索的基本功能,如`lucene-core-4.7.0.jar`。 - **Analyzer模块**:提供了各种分词器和过滤器,如`lucene-analyzers-common-4.7.0.jar`。 - **QueryParser模块**...
赠送jar包:lucene-suggest-6.6.0.jar; 赠送原API文档:lucene-suggest-6.6.0-javadoc.jar; 赠送源代码:lucene-suggest-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-suggest-6.6.0.pom; 包含翻译后的API...
赠送jar包:lucene-backward-codecs-7.3.1.jar; 赠送原API文档:lucene-backward-codecs-7.3.1-javadoc.jar; 赠送源代码:lucene-backward-codecs-7.3.1-sources.jar; 赠送Maven依赖信息文件:lucene-backward-...
赠送jar包:lucene-core-6.6.0.jar; 赠送原API文档:lucene-core-6.6.0-javadoc.jar; 赠送源代码:lucene-core-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-6.6.0.pom; 包含翻译后的API文档:lucene...
- **多线程支持**:在3.0系列中,Lucene增强了对多线程环境的支持,允许并发索引和检索操作,提升性能。 3. **Lucene 3.4.0** - **查询执行优化**:3.4.0版本对查询执行引擎进行了重大优化,包括更快的评分计算和...
赠送jar包:lucene-spatial-extras-7.3.1.jar; 赠送原API文档:lucene-spatial-extras-7.3.1-javadoc.jar; 赠送源代码:lucene-spatial-extras-7.3.1-sources.jar; 赠送Maven依赖信息文件:lucene-spatial-extras...
赠送jar包:lucene-memory-6.6.0.jar; 赠送原API文档:lucene-memory-6.6.0-javadoc.jar; 赠送源代码:lucene-memory-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-memory-6.6.0.pom; 包含翻译后的API文档...
赠送jar包:lucene-analyzers-smartcn-7.7.0.jar; 赠送原API文档:lucene-analyzers-smartcn-7.7.0-javadoc.jar; 赠送源代码:lucene-analyzers-smartcn-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-...
赠送jar包:lucene-suggest-7.7.0.jar; 赠送原API文档:lucene-suggest-7.7.0-javadoc.jar; 赠送源代码:lucene-suggest-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-suggest-7.7.0.pom; 包含翻译后的API...
赠送jar包:lucene-spatial-extras-7.2.1.jar; 赠送原API文档:lucene-spatial-extras-7.2.1-javadoc.jar; 赠送源代码:lucene-spatial-extras-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-spatial-extras...
使用"je-analysis-1.5.3"和"lucene-core-2.4.1"的组合,开发者可以构建出强大的文本搜索解决方案。在实际应用中,首先,Je-Analysis会处理输入的中文文本,进行分词操作,然后将分词结果传递给Lucene进行索引。当...
赠送jar包:lucene-sandbox-7.2.1.jar; 赠送原API文档:lucene-sandbox-7.2.1-javadoc.jar; 赠送源代码:lucene-sandbox-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-sandbox-7.2.1.pom; 包含翻译后的API...
赠送jar包:lucene-spatial-6.6.0.jar; 赠送原API文档:lucene-spatial-6.6.0-javadoc.jar; 赠送源代码:lucene-spatial-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-spatial-6.6.0.pom; 包含翻译后的API...
赠送jar包:lucene-misc-6.6.0.jar; 赠送原API文档:lucene-misc-6.6.0-javadoc.jar; 赠送源代码:lucene-misc-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-misc-6.6.0.pom; 包含翻译后的API文档:lucene...
赠送jar包:lucene-spatial-extras-6.6.0.jar; 赠送原API文档:lucene-spatial-extras-6.6.0-javadoc.jar; 赠送源代码:lucene-spatial-extras-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-spatial-extras...
赠送jar包:lucene-core-6.6.0.jar; 赠送原API文档:lucene-core-6.6.0-javadoc.jar; 赠送源代码:lucene-core-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-6.6.0.pom; 包含翻译后的API文档:lucene...