首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

利用 Jakarta Commons Digester 解析 XML 配置檔映射至 Java 物件

     編輯:Java 程式設計入門

說明:以簡單範例說明如何使用 Digester 將 XML 配置檔資訊與規則檔對應,生成 Java 物件。

第一步:下載 Digester

在 Apache Commons 找到 Digester 專案,下載 commons-digester-1.6.zip。

第二步:所需主要 JAR

  • commons-digester.jar:核心庫(內部用 SAX 解析,可能需 crimson.jar,JBuilder 環境 JDK 已內建無需額外加入)
  • commons-beanutils.jar:公用工具包
  • commons-logging.jar:日誌包,Digester 依賴

第三步:編寫 XML 配置檔、規則檔與 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>

3. Example.java(對應 Java 物件,需具備對應 setter 方法)

(原文未給出完整 Java 類別,需自行根據規則定義 setQueueConnectionFactory、addSenderQueue、setExchangePublicationID、addReceiverList 等方法)

使用 Digester 解析時,程式碼大致如下:

Digester digester = DigesterLoader.createDigester(rulesXmlUrl);
Object result = digester.parse(configXmlUrl);

Digester 會根據規則檔將配置檔資料自動映射至 Java 物件屬性與集合中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved