How to load xml file using apache commons configuration (java)?

后端 未结 2 2147
一生所求
一生所求 2021-01-15 04:04

This is my java project strucutre

src/main/java
  |_LoadXml.java
src/main/resources/
  |_config.xml
src/test/java
src/test/resources

I want

相关标签:
2条回答
  • 2021-01-15 04:40

    Load xml keys and values into a Map:

        public static Map<String, String> parseConfig() throws ConfigurationException {
    
            XMLConfiguration config = new XMLConfiguration("config.xml");
            NodeList list = config.getDocument().getElementsByTagName("entry");
    
            Map<String, String> map = new HashMap<String, String>();
            for (int i = 0; i < list.getLength(); i++) {
                Node node = list.item(i);
                String key = node.getAttributes().getNamedItem("key").getTextContent();
                String val = node.getTextContent();
                map.put(key, val);
            }
            System.out.println(map);
            return map;
        }
    

    OUTPUT:
    {favoriteSeason=summer, favoriteFruit=pomegranate, favoriteDay=today}

    0 讨论(0)
  • 2021-01-15 04:45

    Just use the config.getRootNode() and then node.getChildren("entry")

    XMLConfiguration config = new XMLConfiguration("_config.xml");
    Map<String, String> configMap = new HashMap<String, String>();
    ConfigurationNode node = config.getRootNode();
    for (ConfigurationNode c : node.getChildren("entry"))
    {
        String key = (String)c.getAttribute(0).getValue();
        String value = (String)c.getValue();
        configMap.put(key, value);
    }
    

    Then you can just do:

    System.out.println(configMap.get("favoriteSeason")); // prints: summer
    
    0 讨论(0)
提交回复
热议问题