XML字符串转Map

//XML 转Map
public Map Xml2Map(String xmlString){
xmlString = xmlString.replaceAll("</?xml>", "");
//匹配一段一段这样的数据 <attach><![CDATA[支付测试]]></attach>
Pattern pattern = Pattern.compile("<.*?/.*?>");
Matcher matcher = pattern.matcher(xmlString);
//配置是否包含<![CDATA[CNY]]> CDATA 包裹的数据
Pattern pattern2 = Pattern.compile("!.*]");
Map<String, String> map = new HashMap<>();
while(matcher.find()) {
//获取键
String key = matcher.group().replaceAll(".*/", "");
key = key.substring(0, key.length() - 1);
Matcher matcher2 = pattern2.matcher(matcher.group());
String value = matcher.group().replaceAll("</?.*?>", "");
//获取值
if(matcher2.find() && !value.equals("DATA")) {
value = matcher2.group().replaceAll("!.*\\[", "");
value = value.substring(0, value.length() - 2);
}
map.put(key, value);
}
return map;
}
posted @ 2018-02-06 19:01  偷电瓶养你  阅读(276)  评论(0)    收藏  举报