转一个XML工具类,方便下次用
import java.io.ByteArrayInputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.InputSource;
/**
* XML解析工具类
* @author zhangsy
* @date 2019年8月20日
*/
public class XmlUtils {
/**
* 解析xml文本
* @Title: parseXml
* @data:2019年8月20日下午2:03:35
* @author:zhangsy
*
* @param xml
* @return
*/
public static Map<String, Object> parseXml(String xml) {
if (StringUtils.isBlank(xml))
return null;
try {
return parseXml(xml.getBytes("UTF-8"), "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解析xml文本
* @Title: parseXml
* @data:2019年8月20日下午2:03:35
* @author:zhangsy
*
* @param xml
* @return
*/
public static Map<String, String> parseXmlToStrMap(String xml) {
if (StringUtils.isBlank(xml))
return null;
Map<String, String> result = new HashMap<String, String>();
try {
Map<String, Object> map = parseXml(xml);
for (String key : map.keySet()) {
Object value = map.get(key);
result.put(key, String.valueOf(value));
}
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解析xml数据
* @Title: parseXml
* @data:2019年8月20日下午2:03:28
* @author:zhangsy
*
* @param xmlBytes
* @param charset
* @return
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> parseXml(byte[] xmlBytes, String charset) {
SAXReader reader = new SAXReader(false);
InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
source.setEncoding(charset);
Map<String, Object> map = new HashMap<String, Object>();
try {
Document doc = reader.read(source);
Iterator<Element> iter = doc.getRootElement().elementIterator();
while (iter.hasNext()) {
Element e = iter.next();
if (!e.elementIterator().hasNext()) {
map.put(e.getName(), e.getTextTrim());
continue;
}
Iterator<Element> iterator = e.elementIterator();
Map<String, String> param = new HashMap<String, String>();
while (iterator.hasNext()) {
Element el = iterator.next();
param.put(el.getName(), el.getTextTrim());
}
map.put(e.getName(), param);
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}
pom文件加入:
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
转载自 : https://blog.csdn.net/hanys_csdn/article/details/80333146
感谢分享