欢迎光临
我们一直在努力

Digester解析XML文档Sample-JSP教程,Java与XML

建站超值云服务器,限时71元/月

解析xml文档

digester的使用相当简单,请参看如下的sampledigester类中的注释,这里不再拗述:

/*============================================================

* copyright:www.skyinn.org (c) 2002 – 2003 all rights reserved.

* file:org.skyinn.quasar.config.sampledigester

* inculde:sampledigester

* modify records

* date author content

* =============================================================

* 2003-5-1 walker create class

* ============================================================*/

package org.skyinn.quasar.config;

import org.apache.commons.digester.digester;

import org.xml.sax.saxexception;

import org.skyinn.quasar.action.actionmapping;

import java.io.ioexception;

/**

* digester解析xml示例程序。

* <p>

* @author walker(walker@skyinn.org)

* <p>

* <strong>参考文献:</strong><p>

* <a href="http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html" target="_blank">learning and using jakarta digester</a><p>

* <a href="http://developer.ccidnet.com/pub/disp/article?columnid=340&articleid=33259&pageno=1" target="_blank">用digester简化xml配置文件处理</a>

*/

public class sampledigester{

private string configfile;

public void setconfigfile(final string configfile){

this.configfile = configfile;

}

/**

* 开始解析。

* <p>

* 在本方法,new一个digester的实例,并将本类(sampledigester)的实例压入

*digester的处理堆栈,调用digester的addcallmethod方法将xml文件中的特定

*节点与处理方法联系起来,并吊桶addcallparam方法设置参数,随后解析给定的xml

*文件。

* @throws ioexception io异常

* @throws saxexception sax异常

*/

public void run() throws ioexception, saxexception{

//新建digester实例

digester digester = new digester();

// this method pushes this (sampledigester) class to the digesters

// object stack making its method s available to processing rules.

digester.push(this);

/*quasar_module/module_info为xml文件中的节点路径:<quasar_module><module_info>…

*addmoduleinfo为本类中的一个方法(见下),即当碰到<quasar_module><module_info>节点时

*调用addmoduleinfo方法,6表示该方法用六个参数,

*/

digester.addcallmethod("quasar_module/module_info", "addmoduleinfo", 6);

//逐个设置参数,第一个参数的索引为0

digester.addcallparam("quasar_module/module_info/name", 0);

digester.addcallparam("quasar_module/module_info/description", 1);

digester.addcallparam("quasar_module/module_info/version", 2);

digester.addcallparam("quasar_module/module_info/author", 3);

digester.addcallparam("quasar_module/module_info/mail", 4);

digester.addcallparam("quasar_module/module_info/update_time", 5);

// this method starts the parsing of the document.

digester.parse(this.configfile);

}//end run()

/**

* 添加模块信息。

* <p>

* 本方法仅将xml文件中的内容简单输出,实际应用中可以将获得的信息进行进一步的处理。

*

* @param name 名字

* @param description 描述

* @param version 版本

* @param author 作者

* @param mail email

* @param updatetime 更新时间

*/

public void addmoduleinfo(final string name,

final string description,

final string version,

final string author,

final string mail,

final string updatetime){

//output

system.out.println("name=" + name + ",description=" + description

+ ",version=" + version + ",author=" + author

+ ",mail=" + mail + ",updatetime=" +updatetime);

}//end addmoduleinfo()

/**

* 添加action映射。

* <p>

* 本方法仅简单输出了传入的actionmapping的信息,在具体应用中可将其加入系统action映射集合中。

* @param actionmapping action映射

*/

public void addactionmapping(final actionmapping actionmapping){

system.out.println(actionmapping);

}

public static void main(string[] args){

sampledigester sd = new sampledigester();

sd.setconfigfile("module.xml");

try{

sd.run();

sd = null;

}catch(exception e){

e.printstacktrace();

}

//__________________________________________

//演示另一种解析方法

digester digester = new digester();

digester.setvalidating( false );

//生成本类实例

digester.addobjectcreate( "quasar_module/action_mappings", sampledigester.class);

//生成actionmapping实例

digester.addobjectcreate("quasar_module/action_mappings/action",actionmapping.class);

//获取属性值,并将其存入actionmapping实例

digester.addsetproperties("quasar_module/action_mappings/action","name","name");

digester.addsetproperties("quasar_module/action_mappings/action","requestpath","requestpath");

digester.addsetproperties("quasar_module/action_mappings/action","actionclass","actionclass");

//调用sampledigester的addactionmapping方法

digester.addsetnext("quasar_module/action_mappings/action","addactionmapping");

try{

digester.parse("module.xml");

}catch(exception e){

e.printstacktrace();

}

}//end main()

}//eoc sampledigester

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Digester解析XML文档Sample-JSP教程,Java与XML
分享到: 更多 (0)