import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jdom.Element;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
/**
* xml字符串转换为map对象(一级节点)
*
* @param xmlDoc
* @return
*
* @author Alex
* @version 创建时间:2018年8月29日 下午1:57:16
*/
public static Map<String, String> xmlElements(String xmlDoc) {
if (xmlDoc != null && !xmlDoc.equals("")) {
Pattern p = Pattern.compile("\r|\n");
Matcher m = p.matcher(xmlDoc);
xmlDoc = m.replaceAll("");
}
Map<String, String> map = new HashMap<String, String>();
// 创建一个新的字符串
StringReader read = new StringReader(xmlDoc);
// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
// 创建一个新的SAXBuilder
SAXBuilder sb = new SAXBuilder();
try {
// 通过输入源构造一个Document
Document doc = sb.build(source);
// 取的根元素
Element root = doc.getRootElement();
// System.out.println(root.getName());//输出根元素的名称(测试)
// 得到根元素所有子元素的集合
List<?> jiedian = root.getChildren();
for (int i = 0; i < jiedian.size(); i++) {
Element et = (Element) jiedian.get(i);// 循环依次得到子元素
map.put(et.getName(), et.getTextTrim());
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}