Подтвердить что ты не робот

Apache Commons XMLConfiguration - как получить список объектов в заданном node?

У меня есть файл конфигурации 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 и приоритет. Насколько я могу судить, нет никакого способа сделать это. Есть ли у кого-нибудь идеи о том, как я могу реализовать этот тип функциональности? Я даже был бы совершенно готов определить структуры данных, соответствующие структуре XML, которые Java могла бы сопоставить с данными, если бы это упростило (на самом деле это было бы даже лучше). Спасибо за помощь всем!

4b9b3361

Ответ 1

Вы можете использовать HierarchicalConfiguration вместо XMLConfiguration. Работает следующим образом:

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