程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 利用Jakarta Commons Digester匹配xml配置文件信息與其對應的xml

利用Jakarta Commons Digester匹配xml配置文件信息與其對應的xml

編輯:JAVA編程入門知識

  利用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-factory>java:/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_id>1</publication_id>
      <receiver-list>
        <param>Telephone</param>
        <param>Email</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>

  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved