这是我的java项目结构
src/main/java
|_LoadXml.java
src/main/resources/
|_config.xml
src/test/java
src/test/resources
我想使用apache公共配置库加载以下xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Here are some favorites</comment>
<entry key="favoriteSeason">summer</entry>
<entry key="favoriteFruit">pomegranate</entry>
<entry key="favoriteDay">today</entry>
</properties>
我为loadxml.java编写了以下代码段
public static void configure() {
try {
XMLConfiguration config = new XMLConfiguration("config.xml");
node = config.getRootElementName();
} catch (ConfigurationException e) {
e.printStackTrace();
}
return;
}
我想将xml键和值加载到一个用“.”(点)分隔的层次结构节点的Map中。如果有人能在这方面帮助我,那将非常有帮助。
2条答案
按热度按时间yrdbyhpb1#
将xml键和值加载到
Map
:输出:
{favoriteSeason=summer, favoriteFruit=pomegranate, favoriteDay=today}
gwo2fgha2#
就用这个
config.getRootNode()
然后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);
}
System.out.println(configMap.get("favoriteSeason")); // prints: summer