dom4j maven依赖
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
xml转换为map的方法源码
/**
*
* @param xml 要转换的xml字符串
* @param charset 字符编码
* @return 转换成map后返回结果
* @throws UnsupportedEncodingException
* @throws DocumentException
*/
public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException{
Map<String, String> respMap = new HashMap<String, String>();
SAXReader reader = new SAXReader();
Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset)));
Element root = doc.getRootElement();
xmlToMap(root, respMap);
return respMap;
}
public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap){
ArrayList<String> strings = new ArrayList<String>();
for (String s:strings
) {
}
if (tmpElement.isTextOnly()) {
respMap.put(tmpElement.getName(), tmpElement.getText());
return respMap;
}
@SuppressWarnings("unchecked")
Iterator<Element> eItor = tmpElement.elementIterator();
while (eItor.hasNext()) {
Element element = eItor.next();
xmlToMap(element, respMap);
}
return respMap;
}
注意导包不要搞错
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
测试数据
<!-- Copyright w3school.com.cn -->
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
测试之后得出的map调用toString并打印输出,得到的结果
{to=George, body=Don't forget the meeting!, from=John, heading=Reminder}