package com.qxueyou.scc.base.util;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
import org.dom4j.Document;
|
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentHelper;
|
import org.dom4j.Element;
|
|
public final class XmlUtils {
|
|
private static Logger log = LogManager.getLogger(XmlUtils.class);
|
|
public static Map<String,String> parseXML(String xml){
|
|
Map<String,String> result = new HashMap<String,String>(10);
|
|
try {
|
|
Document document = DocumentHelper.parseText(xml);
|
|
Element root = document.getRootElement();
|
|
Element child=null;
|
for(Object element:root.elements()){
|
child = (Element) element;
|
|
result.put(child.getName(), child.getText());
|
|
}
|
|
} catch (DocumentException e) {
|
log.error(e,e);
|
}
|
return result;
|
}
|
|
public static String toXml(Map<String,String> map,String rootName){
|
|
StringBuilder sb = new StringBuilder(300);
|
|
sb.append("<").append(rootName).append(">");
|
|
for(String key:map.keySet()){
|
sb.append("<").append(key).append(">");
|
sb.append("<![CDATA[").append(map.get(key)).append("]]>");
|
sb.append("</").append(key).append(">");
|
}
|
|
sb.append("</").append(rootName).append(">");
|
|
return sb.toString();
|
|
}
|
|
public static Map<String,Object> parseMutiXML(String xml){
|
|
Map<String,Object> result = new HashMap<String,Object>(10);
|
|
try {
|
|
Document document = DocumentHelper.parseText(xml);
|
|
Element root = document.getRootElement();
|
|
Element child=null;
|
for(Object element:root.elements()){
|
child = (Element) element;
|
|
if(child.getName().contains("list")){// lst×éºÏ
|
result.put(child.getName(), getXMLList(child));
|
}else{
|
result.put(child.getName(), child.getText());
|
}
|
}
|
|
} catch (DocumentException e) {
|
log.error(e,e);
|
}
|
return result;
|
}
|
|
@SuppressWarnings({ "rawtypes" })
|
public static List<String> getXMLList(Element element) {
|
|
List<String> litObject = new ArrayList<String>();
|
Iterator objElementIterator = element.elementIterator();
|
while (objElementIterator.hasNext()) {
|
Element objElement = (Element) objElementIterator.next();
|
litObject.add(objElement.getText());
|
|
}
|
return litObject;
|
}
|
}
|