package com.open.openbank.utils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class DocUtil {
public static Map<String,String> passeXml(String respXML){
Map<String,String> map = new HashMap<>();
Document document = null;
try {
document = DocumentHelper.parseText(respXML);
} catch (DocumentException e) {
e.printStackTrace();
}
Element rootElement = document.getRootElement();
Iterator iterator = rootElement.elementIterator();
while (iterator.hasNext()){
Element element = (Element) iterator.next();
map.put(element.getName(), element.getTextTrim());
}
return map;
}
/**
* xml转json
*
* @param xmlStr
* @return
* @throws DocumentException
*/
public static JSONObject xml2Json(String xmlStr) {
Document doc = null;
try {
doc = DocumentHelper.parseText(xmlStr);
} catch (DocumentException e) {
e.printStackTrace();
}
JSONObject json = new JSONObject();
dom4j2Json(doc.getRootElement(), json);
return json;
}
/**
* xml转json
*
* @param element
* @param json
*/
private static void dom4j2Json(Element element, JSONObject json) {
// 如果是属性
for (Object o : element.attributes()) {
Attribute attr = (Attribute) o;
if (StringUtils.isNotBlank(attr.getValue())) {
json.put("@" + attr.getName(), attr.getValue());
}
}
List<Element> chdEl = element.elements();
if (chdEl.isEmpty() && StringUtils.isNotBlank(element.getText())) {// 如果没有子元素,只有一个值
json.put(element.getName(), element.getText());
}
for (Element e : chdEl) {// 有子元素
if (!e.elements().isEmpty()) {// 子元素也有子元素
JSONObject chdjson = new JSONObject();
dom4j2Json(e, chdjson);
Object o = json.get(e.getName());
if (o != null) {
JSONArray jsona = null;
if (o instanceof JSONObject) {// 如果此元素已存在,则转为jsonArray
JSONObject jsono = (JSONObject) o;
json.remove(e.getName());
jsona = new JSONArray();
jsona.add(jsono);
jsona.add(chdjson);
}
if (o instanceof JSONArray) {
jsona = (JSONArray) o;
jsona.add(chdjson);
}
json.put(e.getName(), jsona);
} else {
if (!chdjson.isEmpty()) {
json.put(e.getName(), chdjson);
}
}
} else {// 子元素没有子元素
for (Object o : element.attributes()) {
Attribute attr = (Attribute) o;
if (StringUtils.isNotBlank(attr.getValue())) {
json.put("@" + attr.getName(), attr.getValue());
}
}
if (!e.getText().isEmpty()) {
json.put(e.getName(), e.getText());
}
}
}
}
}
xml格式转换,xml转json
原创
©著作权归作者所有:来自51CTO博客作者刘兔教你呀的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:字符串汉字读取首字母
下一篇:java手机号正则
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java XML转JSON格式
标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6
json与xml之间的转换 java xml 字符串 -
ios json转xml格式 json转为xml
先添加maven依赖<dependency> <groupId>com.oracle.ojdbc</groupId> <artifactId>ojdbc8</artifactId> <scope>runtime</scope>
ios json转xml格式 java Hutool xml json互转xml -
SQL server中定义集合变量
3.4其他基本操作3.4.1重命名1. 需要重命名属性的场景:a) 两个关系中包含同名属性b) Select 子句中包含数学表达式c) &nbs
SQL server中定义集合变量 SQL 基础 集合操作 null值处理 重命名