利用Jakarta Commons Digester匹配XML配置文件信息与其对应的xml规则文件形成Java Object
说明:在这里以一个简单的例子来说明如何使用Digester。
第一步:下载Digester
在http://jakarta.apache.org/commons/index.Html页面找到Digester Project,并下载commons-digester-1.6.zip(我使用的)
第二步:所需主要lib
commons-digester.jar : 这个就是Digester主要的lib
(digester中解析xml利用的是Sax方法,有可能需要crimson.jar,在我的JBuilder环境就不需要,因为jdk已经带了解析xml文件的lib)
commons-beanutils.jar : 主要公用包(请查看http://www.apache.org)
commons-logging.jar : 其log包,由于commons-digester.jar该包中使用
第三步:书写xml配置文件(config.xml)、xml规则文件(rules.xml)与Java Object(Example.java)
1.config.xml
?xml version="1.0" encoding="UTF-8"?
db-base-config
control
queue-connection-factoryjava:/ConnectionFactory/queue-connection-factory
sender-queue
param name="Internet"queue/Email/param
param name="CDMA"queue/SmsCdma/param
/sender-queue
/control
db-foreign-exchange-sql
publication_id1/publication_id
receiver-list
paramTelephone/param
paramEmail/param
/receiver-list
/db-foreign-exchange-sql
/db-base-config
2. rules.xml
?xml version="1.0" encoding="UTF-8"?
digester-rules
pattern value="db-base-config/control"
call-method-rule pattern="queue-connection-factory" methodname="setQueueConnectionFactory" paramcount="0"/
pattern value="sender-queue/param"
call-method-rule methodname="addSenderQueue" paramcount="2"/
call-param-rule paramnumber='0' attrname='name'/
call-param-rule paramnumber='1'/
/pattern
/pattern
pattern value="db-base-config/db-foreign-exchange-sql"
call-method-rule pattern="publication_id" methodname="setExchangePublicationID" paramcount="0"/
pattern value="receiver-list/param"
call-method-rule methodname="addReceiverList" paramcount="0"/
/pattern
/pattern
/digester-rules