将xml字符串转换成map,list 的转换
2017-08-14 16:39
211 查看
public static Map transXmlStringToMap(String xml) {
Map map = new HashMap();
Document doc = null;
try {
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator(); // 获取根节点下的子节点
// 遍历根节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String elementName = recordEle.getName();
String elementValue = recordEle.getTextTrim();
System.out.println(elementName + "=" + elementValue);
map.put(elementName, elementValue);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
/**
* @description 将xml字符串数据转换成list
* @param xml
* @return Map
*/
public static List transXmlStringToList(String xml) {
Document doc = null;
List ckxxList = new ArrayList();
try {
//注意xml串中可能存在一些非法的字符串,需要转化
doc = DocumentHelper.parseText(xml.replaceAll(" < ", "<")
.replaceAll(" ≤ ", "<=")); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Iterator iter1 = rootElt.elementIterator(); // 获取根节点下的子节点
// 遍历根节点
while (iter1.hasNext()) {
Element recordEle = (Element) iter1.next();
Iterator iter2 =recordEle.elementIterator();
String elementName = recordEle.getName();
Map map = new HashMap();
List ckdataList = new ArrayList();
while(iter2.hasNext()){
Element recordEle2 = (Element) iter2.next();
if(!"CKDATA".equalsIgnoreCase(recordEle2.getName())){
map.put(recordEle2.getName(), recordEle2.getTextTrim());
}
if("CKDATA".equalsIgnoreCase(recordEle2.getName())){
Map ckdataMap = new HashMap();
Iterator iter3 =recordEle2.elementIterator();
while(iter3.hasNext()){
Element recordEle3 = (Element)iter3.next();
ckdataMap.put(recordEle3.getName(), recordEle3.getTextTrim());
}
ckdataList.add(ckdataMap);
map.put(recordEle2.getName(), ckdataList);
}
}
ckxxList.add(map);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return ckxxList;
}
Map map = new HashMap();
Document doc = null;
try {
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator(); // 获取根节点下的子节点
// 遍历根节点
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String elementName = recordEle.getName();
String elementValue = recordEle.getTextTrim();
System.out.println(elementName + "=" + elementValue);
map.put(elementName, elementValue);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
/**
* @description 将xml字符串数据转换成list
* @param xml
* @return Map
*/
public static List transXmlStringToList(String xml) {
Document doc = null;
List ckxxList = new ArrayList();
try {
//注意xml串中可能存在一些非法的字符串,需要转化
doc = DocumentHelper.parseText(xml.replaceAll(" < ", "<")
.replaceAll(" ≤ ", "<=")); // 将字符串转为XML
Element rootElt = doc.getRootElement(); // 获取根节点
Iterator iter1 = rootElt.elementIterator(); // 获取根节点下的子节点
// 遍历根节点
while (iter1.hasNext()) {
Element recordEle = (Element) iter1.next();
Iterator iter2 =recordEle.elementIterator();
String elementName = recordEle.getName();
Map map = new HashMap();
List ckdataList = new ArrayList();
while(iter2.hasNext()){
Element recordEle2 = (Element) iter2.next();
if(!"CKDATA".equalsIgnoreCase(recordEle2.getName())){
map.put(recordEle2.getName(), recordEle2.getTextTrim());
}
if("CKDATA".equalsIgnoreCase(recordEle2.getName())){
Map ckdataMap = new HashMap();
Iterator iter3 =recordEle2.elementIterator();
while(iter3.hasNext()){
Element recordEle3 = (Element)iter3.next();
ckdataMap.put(recordEle3.getName(), recordEle3.getTextTrim());
}
ckdataList.add(ckdataMap);
map.put(recordEle2.getName(), ckdataList);
}
}
ckxxList.add(map);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return ckxxList;
}
相关文章推荐
- 将Map和List<Map>zhuan转换成xml字符串
- Jackson将json字符串转换成泛型List/map
- java字符串转换List map
- XML字符串转换成List
- java实现对象转换为map、xml字符串转化为map、map转化为xml字符串
- JSONArray类将JavaBean,List,Map转换成json字符串
- Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- 【第15篇】通过FastJson把字符串转换成JSON和Map和List对象处理json数据
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- 示例:将通过js获取的json字符串转换为Map、List集合(不太重要)
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- json字符串转换为多级Map -list-map的形式
- JSON格式的字符串转换为List Map String,Object
- 【深入JAVA】将Json字符串转换成Map/List
- java 将jso 格式的字符串转换为List<Map<String,String>>
- java转换xml、list、map和json
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Dom4J解析xml文件动态转换为List<Bean>或者Map集合
- Jackson 框架JSON、XML、List、Map直接相互转换