commons-digesterメモ

例:ログインにあたりid、パスワードをxmlしたデーターを用意
*ユーザー3人
<userlist>
    <user id="admin" password="password"/>
    <user id="user1" password="12345678"/>
    <user id="user2" password="87654321"/>
</userlist>

個々のデーターはuservalueとしてsetter getterを用意したBeanに格納される。
この場合3つのuservalueオブジェクトが存在することになる。

3つのデータをリストとして格納。つまり
list.add()する。

次にdigesterで読み込みのルールを定めたxmlファイル

<digester-rules>
    /* userlist ノードをみつた時点で Listオブジェクトを作成 */
    <object-create-rule pattern="userlist" classname="java.util.ArrayList" />
    /* userlistの子ノードであるuserノードをみつける毎に  */
    <pattern value="userlist/user">
        /* uservalueオブジェクト作成   */
        <object-create-rule classname="UserValue"/>
        /* 全てのレコードをセットして(Beanのsetterが始動) */
        <set-properties-rule />
        /* 先に作成したListに格納する  */
        <set-next-rule methodname="add" />
    </pattern>
</digester-rules>

Javaのソースは以下

String rule=ルールを定義したxmlファイルのパス;
String data =対象のデーターのxmlファイルのパス;
Digester d = DigesterLoader.createDigester(new File(rule).toURL());
List list =(List)d.parse(new File(data));

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.