我有一个类似于此的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.getList("failoverServers.server.ipAddress");
我可以获得所有IP地址的列表。这很方便,但如果我可以这样做的话会更方便:
config.getList("failoverServers.server");
并获取一个对象列表,每个对象都有一个ipAddress和一个优先级。据我所知,没有办法做到这一点。有没有人对如何实现这种功能有任何想法?我甚至非常愿意定义与Java可以将数据映射到的XML结构相对应的数据结构,如果这会使事情变得更容易(事实上甚至可能更好)。谢谢大家的帮助!
答案 0 :(得分:16)
您可以使用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