前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java解析xml工具类[通俗易懂]

java解析xml工具类[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-31 11:05:07
1.3K0
发布2022-08-31 11:05:07
举报

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
public class XmlUtils {
    /**  * 解析xml数据  * */  public static Map<String,Object> parseXml(byte[] xmlBytes, String charset) {
        SAXReader reader = new SAXReader(false);
        InputSource source = new InputSource(new ByteArrayInputStream(xmlBytes));
        source.setEncoding(charset);
        Map<String,Object> map = new HashMap<String, Object>();
        try {
            Document doc = reader.read(source);
            Iterator<Element> iter = doc.getRootElement().elementIterator();
            while (iter.hasNext()) {
                Element e = iter.next();
                if (!e.elementIterator().hasNext()) {
                    map.put(e.getName(),e.getTextTrim());
                    continue;
                }
                Iterator<Element> iterator = e.elementIterator();
                Map<String,String> param = new HashMap<String, String>();
                while (iterator.hasNext()) {
                    Element el = iterator.next();
                    param.put(el.getName(),el.getTextTrim());
                }
                map.put(e.getName(),param);
            }
        }catch (Exception e) {
            LogUtils.error("XmlParseError",e);
        }
        return map;
    }

    public static Map<String,String> parseXml(String xml) {
        if (StringUtils.isBlank(xml)) {
            return null;
        }
        Map<String,String> result = new HashMap<String, String>();
        try {
            Map<String,Object> map = parseXml(xml.getBytes("UTF-8"), "UTF-8");
            for (String key:map.keySet()) {
                Object value = map.get(key);
                result.put(key, String.valueOf(value));
            }
            return result;
        }catch (Exception e) {
            LogUtils.error("parse_xml_error", e);
        }
        return null;
    }
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143972.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档