【问题标题】:Apache Commons XMLConfiguration - how to fetch a list of objects at a given node?Apache Commons XMLConfiguration - 如何在给定节点获取对象列表?
【发布时间】:2013-01-01 13:02:20
【问题描述】:

我有一个类似这样的 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 和一个优先级。据我所知,没有办法做到这一点。有人对我如何完成这种功能有任何想法吗?我什至非常愿意定义与 XML 的结构相对应的数据结构,Java 可以将数据映射到这些数据结构中,如果这会使事情变得更容易(实际上这可能会更好)。感谢大家的帮助!

【问题讨论】:

    标签: java orm apache-commons


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多