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

java解析xml工具类[通俗易懂]publicclassXmlUtils{/***解析xml数据**/publicstaticMap<String,Object>parseXml(byte[]xmlBytes,Stringcharset){SAXReaderreader=newSAXReader(false);…

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

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.net/143972.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月20日 下午1:40
下一篇 2022年5月20日 下午2:00


相关推荐

  • Redis创建高可用集群教程【Windows环境】

    模仿的过程中,加入自己的思考和理解,也会有进步和收获。在这个互联网时代,在高并发和高流量可能随时爆发的情况下,单机版的系统或者单机版的应用已经无法生存,越来越多的应用开始支持集群,支持分布式部署了。而Redis作为缓存服务器的比较出色的一员,它在出生的时候就被设置支持集群,本篇就是介绍Redis集群的介绍和搭建过程!使用的平台是Windows,搭建的思路和Linux上基本一致! 墙…

    2022年2月27日
    43
  • SQL语句查询语句完整语法

    SQL语句查询语句完整语法数据库是 mysql 使用的数据库表名称是 my student 表的完整数据信息是 完整语法是 Select select 选项 字段列表 字段别名 from 数据源 where 字句 groupby 子句 having 子句 orderby 子句 limit 子句 select 选项 Select 选项包含 ALL 所有 默认 dis

    2025年10月6日
    6
  • java ftl_.ftl文件 是什么文件 freemaker「建议收藏」

    java ftl_.ftl文件 是什么文件 freemaker「建议收藏」freemarker的文件一般以后缀ftl,ftl文件的头上要写这样才能在ftl中使用webwork的tag。freemarker确实是不错的模版语言引擎,尤其是处理对象图很方便,处理xml也很方便,还支持xpath什么是FreeMarker?FreeMarker是一个模版引擎,一个基于文本的模板输出工具(生成任意的HTML表单代码)。它是一个Javapackage,面向Java程序员的cla…

    2022年6月26日
    44
  • 学习笔记:ssh远程连接root登陆失败,ssh双端口策略,xshell上传下载文件,服务升级备份包,

    学习笔记:ssh远程连接root登陆失败,ssh双端口策略,xshell上传下载文件,服务升级备份包,遇到无法进行ssh远程传输服务时候检查一下配置文件 vim /etc/ssh/sshd_config 中的permissRootLogin 是不是no 改为yes重启sshd服务即可ssh服务一般开两个端口一个默认22一个5222(避免远程关闭端口后断开连接,无法登录)XShell建立连接后rz命令上传文件到linuxsz命令下载文件到window对服务进行升级后建议打包两个文件,一个带有配置文件(用于没有该服务的机器的服务安装),一个不带配置文件(x,用于其他已有该服务.

    2022年8月11日
    7
  • (收藏)【 数字化客户体验】NPS、CSAT和CES——2020年跟踪的客户满意度指标「建议收藏」

    (收藏)【 数字化客户体验】NPS、CSAT和CES——2020年跟踪的客户满意度指标「建议收藏」你每收到一个顾客的投诉,就有大约26个人对你的公司不满,但是他们选择沉默。如果你不采取适当的行动,你很可能会失去这些客户。除了失去客户和收入之外,客户满意度低也会损害你的品牌形象——尤其是当某些客户投诉在网上疯传时。幸运的是,客户满意度测量工具可以帮助你收集有价值的反馈,这样你就可以做出客户真正要求的改变和改进——所有这些都是为了给他们提供更好的体验和更愉快的客户旅程。为了简单起见,我们应该提到客户满意度指标通常也称为CX指标。CX是什么意思?CX代表客户体验。CX的准确定义将客户体验描

    2022年5月7日
    173
  • 本地 OpenClaw 部署后如何公网访问?手把手教你用腾讯云搭建安全隧道

    本地 OpenClaw 部署后如何公网访问?手把手教你用腾讯云搭建安全隧道

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号