公司网站怎样做维护,算命网站开发,网站各页面,网站开发标准ppt背景#xff1a;最近遇到接口返回是xml#xff0c;所以需要整一个转换的工具类#xff0c;方便后续其他xml处理。
依赖引入#xff1a;
dependencygroupIddom4j/groupIdartifactIddom4j/artifactIdversion1.1/versi…背景最近遇到接口返回是xml所以需要整一个转换的工具类方便后续其他xml处理。
依赖引入
dependencygroupIddom4j/groupIdartifactIddom4j/artifactIdversion1.1/version
/dependency工具类代码如下
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;/*** xml工具类* author Litluecat*/
Slf4j
public class MyXmlUtils {/*** 将xml转成map对象* param xml* param map* return 返回异常错误*/public static String xml2Map(String xml, MapString, Object map) {String errorMsg ;try{Document document DocumentHelper.parseText(xml);// 通过document对象获取根节点Element element document.getRootElement();// 通过element对象的elementIterator方法获取迭代器toMap(element, map);} catch (DocumentException e) {errorMsg xml转map异常异常xml xml;//log.error(xml转map异常异常xml{}, xml, e);}return errorMsg;}/*** 遍历所有节点* param element* param map*/private static void toMap(Element element, MapString, Object map){Iterator it element.elementIterator();// 判断是否为叶子节点if(it.hasNext()){// 非叶子节点需要继续往下层遍历直到找到叶子节点while (it.hasNext()) {Element node (Element) it.next();// 节点名称作为map的keyString key node.getName();MapString, Object mapTemp new HashMap();toMap(node, mapTemp);map.put(key, mapTemp);}}else{// 叶子节点直接将值放入map.put(element.getName(), element.getStringValue());}}
}
总结虽然可以直接取xml节点但是为了方便自己跟方便他人还是写了一个工具类出来这样别人有需要也可以使用。