这是我的java项目结构
src/main/java
|_LoadXml.java
src/main/resources/
|_config.xml
src/test/java
src/test/resources
我想使用 apache-common 配置库加载以下 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 键和值加载到一个映射中,其中层次结构节点由“.”(点)分隔。如果有人可以在这方面帮助我,那将非常有帮助。
将 xml 键和值加载到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}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)