@SuppressWarnings("unchecked")
public static String toXml(Object o) {
StringBuffer xml = new StringBuffer("");
if (o != null) {
if (Map.class.isInstance(o) == true) {
Map<String, ?> m = (Map<String, ?>) o;
Iterator<String> it = m.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
xml.append("<" + key + ">");
if (Map.class.isInstance(m.get(key)) == true
|| List.class.isInstance(m.get(key)) == true) {
xml.append(toXml(m.get(key)));
} else {
xml.append(m.get(key));
}
xml.append("</" + key + ">");
}
} else if (List.class.isInstance(o) == true) {
List<?> l = (List<?>) o;
for (int i = 0; i < l.size(); i++) {
xml.append(toXml(l.get(i)));
}
}
}
return xml.toString();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public static Map<String, HashMap<?, ?>> toMap(String xml) {
Map<String, HashMap<?, ?>> m = new HashMap<String, HashMap<?, ?>>();
try {
Document document = DocumentHelper.parseText(xml);
Element nodeElement = document.getRootElement();
if (nodeElement != null) {
m.put(nodeElement.getName(), null);
List<?> node = nodeElement.elements();
if (node != null) {
m.put(nodeElement.getName(), new HashMap());
for (Iterator<?> it = node.iterator(); it.hasNext();) {
Element elm = (Element) it.next();
((Map) m.get(nodeElement.getName())).put(elm.getName(),
elm.getText());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return m;
}
public static String maptoXml(Map<String, String> map) {
Document document = DocumentHelper.createDocument();
document.setXMLEncoding("UTF-8");
Element nodeElement = document.addElement("xml");
for (Map.Entry<String, String> str : map.entrySet()) {
if (isNotEmpty(str.getValue())) {
Element keyElement = nodeElement.addElement(str.getKey());
keyElement.addCDATA(str.getValue());
}
}
return document.asXML();
}
private static boolean isNotEmpty(String str) {
if (null == str || "".equals(str.trim()) || "null".equals(str.trim())) {
return false;
} else {
return true;
}
}
xml与map之间互转(java)
最新推荐文章于 2022-08-09 15:42:47 发布