java用jdom解析xml

1.导入依赖
        <dependency>
            <groupId>org.jdom</groupId>
            <artifactId>jdom</artifactId>
            <version>1.1.3</version>
        </dependency>
 2.需要解析的xml
<Root>
  <Variable VarName="LQT_Level" Address="0" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔液位" IsFiling="1" IsAlarm="1" IsReport="1" AbsoluteAddress="40000" />
  <Variable VarName="LQT_InPre" Address="2" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔入口压力" IsFiling="1" IsAlarm="1" IsReport="1" AbsoluteAddress="40002" />
  <Variable VarName="LQT_InTemp" Address="4" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔入口温度" IsFiling="1" IsAlarm="1" IsReport="1" AbsoluteAddress="40004" />
  <Variable VarName="LQT_OutPre" Address="6" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔出口压力" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40006" />
  <Variable VarName="LQT_OutTemp" Address="8" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔出口温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40008" />
  <Variable VarName="LQB1_Current" Address="12" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#冷却泵电流" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40012" />
  <Variable VarName="LQB1_Fre" Address="14" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#冷却泵频率" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40014" />
  <Variable VarName="LQB2_Current" Address="16" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#冷却泵电流" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40016" />
  <Variable VarName="LQB2_Fre" Address="18" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#冷却泵频率" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40018" />
  <Variable VarName="KYJ1_OutTemp" Address="20" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#空压机回水温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40020" />
  <Variable VarName="KYJ2_OutTemp" Address="22" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#空压机回水温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40022" />
  <Variable VarName="KYJ3_OutTemp" Address="24" DataType="Float" StoreArea="03 Holding Register(4x)" Note="3#空压机回水温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40024" />
  <Variable VarName="CQG1_OutPre" Address="26" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#储气罐出口压力" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40026" />
  <Variable VarName="CQG2_OutPre" Address="28" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#储气罐出口压力" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40028" />
  <Variable VarName="CQG3_OutPre" Address="30" DataType="Float" StoreArea="03 Holding Register(4x)" Note="3#储气罐出口压力" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40030" />
  <Variable VarName="Env_Temp" Address="32" DataType="Float" StoreArea="03 Holding Register(4x)" Note="露点温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40032" />
  <Variable VarName="FQG_Temp" Address="34" DataType="Float" StoreArea="03 Holding Register(4x)" Note="分汽缸温度" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40034" />
  <Variable VarName="FQG_Pre" Address="36" DataType="Float" StoreArea="03 Holding Register(4x)" Note="分汽缸压力" IsFiling="1" IsAlarm="0" IsReport="1" AbsoluteAddress="40036" />
  <Variable VarName="LQT_InPre_H" Address="38" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔回水压力高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40038" />
  <Variable VarName="LQT_InTemp_H" Address="40" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔回水温度高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40040" />
  <Variable VarName="LQT_OutPre_H" Address="42" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔供水压力高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40042" />
  <Variable VarName="LQT_OutTemp_H" Address="44" DataType="Float" StoreArea="03 Holding Register(4x)" Note="冷却塔供水温度高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40044" />
  <Variable VarName="LQB1_Fre_H" Address="46" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#冷却泵频率高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40046" />
  <Variable VarName="LQB1_Fre_L" Address="48" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#冷却泵频率低限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40048" />
  <Variable VarName="LQB2_Fre_H" Address="50" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#冷却泵频率高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40050" />
  <Variable VarName="LQB2_Fre_L" Address="52" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#冷却泵频率低限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40052" />
  <Variable VarName="KYJ1_Fre_Set" Address="54" DataType="Float" StoreArea="03 Holding Register(4x)" Note="1#空压机频率给定" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40054" />
  <Variable VarName="KYJ2_Fre_Set" Address="56" DataType="Float" StoreArea="03 Holding Register(4x)" Note="2#空压机频率给定" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40056" />
  <Variable VarName="KYJ3_Fre_Set" Address="58" DataType="Float" StoreArea="03 Holding Register(4x)" Note="3#空压机频率给定" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40058" />
  <Variable VarName="FQG_Temp_H" Address="60" DataType="Float" StoreArea="03 Holding Register(4x)" Note="分汽缸温度高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40060" />
  <Variable VarName="FQG_Pre_H" Address="62" DataType="Float" StoreArea="03 Holding Register(4x)" Note="分汽缸压力高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40062" />
  <Variable VarName="Env_Temp_H" Address="64" DataType="Float" StoreArea="03 Holding Register(4x)" Note="露点温度高限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40064" />
  <Variable VarName="Env_Temp_L" Address="66" DataType="Float" StoreArea="03 Holding Register(4x)" Note="露点温度低限" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40066" />
  <Variable VarName="LQB1_Start_Ctl" Address="100" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#冷却泵启动" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40100" />
  <Variable VarName="LQB1_Stop_Ctl" Address="101" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#冷却泵停止" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40101" />
  <Variable VarName="LQB1_Run_State" Address="102" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#冷却泵运行状态" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40102" />
  <Variable VarName="LQB2_Start_Ctl" Address="103" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#冷却泵启动" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40103" />
  <Variable VarName="LQB2_Stop_Ctl" Address="104" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#冷却泵停止" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40104" />
  <Variable VarName="LQB2_Run_State" Address="105" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#冷却泵运行状态" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40105" />
  <Variable VarName="KYJ1In_Open_Ctl" Address="106" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#空压机进液阀开启" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40106" />
  <Variable VarName="KYJ1In_Close_Ctl" Address="107" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#空压机进液阀关闭" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40107" />
  <Variable VarName="KYJ1In_Run_State" Address="108" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="1#空压机进液阀状态" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40108" />
  <Variable VarName="KYJ2In_Open_Ctl" Address="109" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#空压机进液阀开启" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40109" />
  <Variable VarName="KYJ2In_Close_Ctl" Address="110" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#空压机进液阀关闭" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40110" />
  <Variable VarName="KYJ2In_Run_State" Address="111" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="2#空压机进液阀状态" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40111" />
  <Variable VarName="KYJ3In_Open_Ctl" Address="112" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="3#空压机进液阀开启" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40112" />
  <Variable VarName="KYJ3In_Close_Ctl" Address="113" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="3#空压机进液阀关闭" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40113" />
  <Variable VarName="KYJ3In_Run_State" Address="114" DataType="Unsigned" StoreArea="03 Holding Register(4x)" Note="3#空压机进液阀状态" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="40114" />
  <Variable VarName="123" Address="1234678" DataType="Float" StoreArea="03 Holding Register(4x)" Note="" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="1274678" />
  <Variable VarName="1234" Address="12345" DataType="Float" StoreArea="03 Holding Register(4x)" Note="" IsFiling="0" IsAlarm="0" IsReport="0" AbsoluteAddress="52345" />
</Root>
3.解析测试代码
@RequestMapping(value = "/test02", method = RequestMethod.GET)
    @ResponseBody
    public void demo02() throws IOException, JDOMException {
        //1.创建SAXBuilder对象
        SAXBuilder saxBuilder = new SAXBuilder();
        //2.创建输入流

        InputStream is = new FileInputStream(new File("D:\\project\\ideaProject\\demo05\\src\\main\\resources\\static\\Variable_Modbus.xml"));
        //3.将输入流加载到build中
        Document document = saxBuilder.build(is);
        //4.获取根节点\
        Element rootElement = document.getRootElement();
        //5.获取子节点
        List<Element> children = rootElement.getChildren();
        for (Element child : children) {
            System.out.println("通过Variable获取属性值:"+child.getName());
            List<Attribute> attributes = child.getAttributes();
            //打印属性
            System.out.println("======获取子节点-start======");
            for (Attribute attr : attributes) {
                System.out.println(attr.getName()+":"+attr.getValue());
            }
            System.out.println("======获取子节点-end======");
            //List<Element> childrenList = child.getChildren();

//            for (Element o : childrenList) {
//                System.out.println("节点名:"+o.getName()+"---"+"节点值:"+o.getValue());
//            }

        }
       // return jsonObject;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值