16

私はこれに似たXML構成ファイルを持っています:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
    <mainServerHostname>MainServer</mainServerHostname>
    <failoverServers>
        <server>
            <ipAddress>192.168.0.5</ipAddress>
            <priority>1</priority>
        </server>
        <server>
            <ipAddress>192.168.0.6</ipAddress>
            <priority>2</priority>
        </server>
    </failoverServers>
</config>

これで、次のコードを使用することでわかりました(XMLConfigurationオブジェクトを設定し、それをconfigと呼んだ後)。

config.getList("failoverServers.server.ipAddress");

すべてのIPアドレスのリストを取得できます。これは便利ですが、次のようなことができればさらに便利になります。

config.getList("failoverServers.server");

オブジェクトのリストを取得します。各オブジェクトにはipAddressと優先度があります。私が知る限り、これを行う方法はありません。このタイプの機能をどのように実現できるかについて誰かがアイデアを持っていますか?私は、JavaがデータをマップできるXMLの構造に対応するデータ構造を完全に定義することさえできます。そうすれば、物事が簡単になります(実際、それはおそらくさらに良いでしょう)。すべての助けをありがとう!

4

1 に答える 1

16

XMLConfigurationの代わりにHierarchicalConfigurationを使用できます。このように動作します:

List<HierarchicalConfiguration> servers = config.configurationsAt("failoverServers.server");
for(HierarchicalConfiguration server : servers) {
    System.out.println(server.getString("ipAddress"));
}

参照:http ://commons.apache.org/configuration/userguide/howto_xml.html

于 2013-01-17T22:07:37.213 に答える