一、本次解析中用到jar为dom4j 1.6.1
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
二、解析自定义XML为例
<roots>
<root id="test">
<format>123</format>
</root>
</roots>
Map<String, Object> xmlMaps = new HashMap<>();
InputStream in = null;
Reader reader = null;
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
try {
Resource[] resources = resolver.getResources(""); //xml所在路径
for (Resource resource : resources) {
in = resource.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(in,"UTF-8");
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(inputStreamReader);
Element root = doc.getRootElement();
Iterator<Element> root1 = root.elementIterator("root");
while (root1.hasNext()){
Element next = (Element) root1.next();
String id = next.attributeValue("id");
String format = next.element("format").getText();
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
in.close();
reader.close();
}
如果其中有很多嵌套或者又很多需要替换的可能需要处理很多的逻辑,以实际情况为准