解析xml文件

此博客介绍了如何将XML文件转换为JSONObject,通过递归解析处理header、search和data部分,并将数据适配到实体中,便于后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以将xml的文件转成json对象在封装到实体中

 @Override
    public List<JSONObject> xmlTOJSONObject(String xmlStr) {
        List<JSONObject> list = new ArrayList<>();
        JSONObject jsonObject = XML.toJSONObject(xmlStr);
        JSONObject jsonObjectRoot = (JSONObject) jsonObject.get("ROOT");
        List<JSONObject> jsonObjectDataList = (List<JSONObject>) jsonObjectRoot.get("data");
        jsonObjectDataList.stream().forEach(data -> {
            JSONObject jsonObject1 = new JSONObject();
            //先获取id
            jsonObject1.set("id", (Integer) data.get("id"));
            //获取headlers中的内容
            JSONObject handlers = (JSONObject) data.get("handlers");
            jsonObject1.set("modedatacreater", (Integer) handlers.get("modedatacreater"));
            jsonObject1.set("modedatacreatershow", (String) handlers.get("modedatacreatershow"));
            jsonObject1.set("modedatacreatedate", LocalDate.parse((String) handlers.get("modedatacreatedate")));
          jsonObject1.set("modedatacreatetime", LocalTime.parse((String) handlers.get("modedatacreatetime")));
            //获取业务字段数据
            JSONObject maintable = (JSONObject) data.get("maintable");
            List<JSONObject> fieldList = (List<JSONObject>) maintable.get("field");
            fieldList.stream().forEach(field -> {
                String filedname = String.valueOf(field.get("filedname"));//字段名称
                String filedvalue = String.valueOf(field.get("filedvalue"));//字段值
                jsonObject1.set(filedname, filedvalue);
            });
            list.add(jsonObject1);
        });

        return list;
    }
}
 
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ROOT>
  <header>
    <userid>0</userid>
    <modeid>10</modeid>
    <id/>
  </header>
  <search>
    <condition/>
    <right>y</right>
  </search>
  <data id="1">
    <handlers>
      <modedatacreater>1</modedatacreater>
      <modedatacreatershow>系统管理员</modedatacreatershow>
      <modedatacreatedate>2021-10-11</modedatacreatedate>
      <modedatacreatetime>11:08:32</modedatacreatetime>
    </handlers>
   <maintable>
      <field>
        <filedname>gzddmc</filedname>
        <filedlabel>工作地点名称</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>123</filedvalue>
        <fieldshowname>123</fieldshowname>
      </field>
      <field>
        <filedname>dm</filedname>
        <filedlabel>代码</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>1234</filedvalue>
        <fieldshowname>1234</fieldshowname>
      </field>
      <field>
        <filedname>xxdz</filedname>
        <filedlabel>详细地址</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>4444</filedvalue>
        <fieldshowname>4444</fieldshowname>
      </field>
      <field>
        <filedname>fzr</filedname>
        <filedlabel>负责人</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>5555</filedvalue>
        <fieldshowname>5555</fieldshowname>
      </field>
      <field>
        <filedname>fzrdh</filedname>
        <filedlabel>负责人电话</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>7777</filedvalue>
        <fieldshowname>7777</fieldshowname>
      </field>
      <field>
        <filedname>bz</filedname>
        <filedlabel>备注</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>777</filedvalue>
        <fieldshowname>777</fieldshowname>
      </field>
    </maintable>
  </data> 
  <data id="2">
    <handlers>
      <modedatacreater>1</modedatacreater>
      <modedatacreatershow>系统管理员</modedatacreatershow>
      <modedatacreatedate>2021-10-11</modedatacreatedate>
      <modedatacreatetime>14:09:40</modedatacreatetime>
    </handlers>
    <maintable>
      <field>
        <filedname>gzddmc</filedname>
        <filedlabel>工作地点名称</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>滨海</filedvalue>
      <fieldshowname>滨海</fieldshowname>
      </field>
      <field>
        <filedname>dm</filedname>
        <filedlabel>代码</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>213312</filedvalue>
        <fieldshowname>213312</fieldshowname>
      </field>
      <field>
        <filedname>xxdz</filedname>
        <filedlabel>详细地址</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>滨海大厦</filedvalue>
       <fieldshowname>滨海大厦</fieldshowname>
      </field>
    </maintable>
  </data>
  <data id="3">
    <handlers>
      <modedatacreater>1</modedatacreater>
      <modedatacreatershow>系统管理员</modedatacreatershow>
      <modedatacreatedate>2021-10-11</modedatacreatedate>
      <modedatacreatetime>14:10:30</modedatacreatetime>
    </handlers>
    <maintable>
      <field>
        <filedname>gzddmc</filedname>
        <filedlabel>工作地点名称</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>空港</filedvalue>
         <fieldshowname>空港</fieldshowname>
      </field>
      <field>
        <filedname>dm</filedname>
        <filedlabel>代码</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>123123</filedvalue>
        <fieldshowname>123123</fieldshowname>
      </field>
      <field>
        <filedname>xxdz</filedname>
        <filedlabel>详细地址</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>空港工业</filedvalue>
         <fieldshowname>空港工业</fieldshowname>
      </field>
      <field>
        <filedname>fzr</filedname>
        <filedlabel>负责人</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>空港工业</filedvalue>
        <fieldshowname>空港工业</fieldshowname>
      </field>
      <field>
        <filedname>fzrdh</filedname>
        <filedlabel>负责人电话</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>213122131</filedvalue>
     <fieldshowname>213122131</fieldshowname>
      </field>
      <field>
        <filedname>bz</filedname>
        <filedlabel>备注</filedlabel>
        <fileddbtype>varchar(222)</fileddbtype>
        <filedvalue>空港工业</filedvalue>
        <fieldshowname>空港工业</fieldshowname>
      </field>
    </maintable>
  </data>
</ROOT>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值