• dom4j解析XML


    一、嵌套多层
    <?
    xml version="1.0" encoding="UTF-8"?> <jstmbsinterface> <result code="0" description="" serverdatetime="2016-07-12 09:51:26"></result>    <data encryptflag="0" encryptkey=""> <Ships count="3" batchnum="1" totalbatch="1">        <Ship> <IsCJStandard>0</IsCJStandard> <ShipTypeName>24234</ShipTypeName> <InspectDate>2014-3-20 0:00:00</InspectDate> <Comments><![CDATA[]]> </Comments> <ShipTeuOne>0.00</ShipTeuOne> <LoadTonOne>43.00</LoadTonOne> <HostNumOne>1</HostNumOne> <SafeManageNum></SafeManageNum> <InitialRegNo>4243</InitialRegNo> <ShipIdNo></ShipIdNo> <ShipIdNoDate></ShipIdNoDate> <StockProportion>54.00</StockProportion> <EntLicenseNo></EntLicenseNo> <ShipId>301003221008213841</ShipId> <CancelTime></CancelTime> <ValidDate>2015-3-20 0:00:00</ValidDate> <RegCertNum>2342342</RegCertNum> <TotalLength></TotalLength> <ShipName>966</ShipName> <ArchiveNum>01319</ArchiveNum> <ShipEnName></ShipEnName> <ShipSurveyNum>2003Q2106441</ShipSurveyNum> <ShipRegNum>270510000022</ShipRegNum> <ShipType>0203</ShipType> <TransType>2</TransType> <Runner>运输有限公司</Runner> <BeforeName></BeforeName> <NationCertNum>270510000022</NationCertNum> <LeaseCretNum></LeaseCretNum> <TempNationCertNum>41234</TempNationCertNum> <ChargeShipType>0</ChargeShipType> <Manager></Manager> <ShipOwner>缺1</ShipOwner> <Material>01</Material> <BuildDate>2003-12-10 0:00:00</BuildDate> <ManagerLicenseNum>交长苏XK1726</ManagerLicenseNum> <ShipValue>0.00</ShipValue> <RebuildDate></RebuildDate> <ShipPort>无锡</ShipPort> <ShipPortCode>3225</ShipPortCode> <ShipNationality></ShipNationality> <BuildCompany>造船厂</BuildCompany> <GrossTon>97.00</GrossTon> <NetTon>54.00</NetTon> <BuildSite>000</BuildSite> <Draft>0.00</Draft> <LoadTon>150.00</LoadTon> <ShipTeu></ShipTeu> <GoodsArea></GoodsArea> <Vehicles>0</Vehicles> <Passengers>0</Passengers> <RatingSpeed>0.00</RatingSpeed> <HostNum>1</HostNum> <MainFrame>134.00</MainFrame> <IsStandard>1</IsStandard> <ShipLength>28.60</ShipLength> <ShipTypeWidth>6.18</ShipTypeWidth> <ShipTypeDepth>2.00</ShipTypeDepth> <IsSailingJh>1</IsSailingJh> <TranLicenseNum>0159</TranLicenseNum> <VerifyCode>53822</VerifyCode> <LicenseFirstDate>2012-04-16 00:00:00</LicenseFirstDate> <LicenseStartDate>2015-08-28 00:00:00</LicenseStartDate> <LicenseEndDate>2018-08-27 00:00:00</LicenseEndDate> <LicenseIssueDate>2015-8-28 16:47:52</LicenseIssueDate> <IssueOrgName>运输管理局</IssueOrgName> <OrgId>6872b6ce14b042da8127ba6fde4ddb97</OrgId> <OwnerId>300704281011306626</OwnerId> <BusiScopeNames>普通货船运输</BusiScopeNames> <BusiScopeName>普通货船运输</BusiScopeName> <BusiScopeCodes>0102010201</BusiScopeCodes> <AreaCode>3265100</AreaCode> <CertState>1</CertState> <OperState>10</OperState> <CaptainName></CaptainName> <ShipWidth>6.18</ShipWidth> <ShipHeight>2.00</ShipHeight> <TotalLoadTon></TotalLoadTon> <IsInlRiverStandard>0</IsInlRiverStandard> </Ship> <Ship> <IsCJStandard>0</IsCJStandard> <ShipTypeName>341</ShipTypeName> <InspectDate></InspectDate> <Comments><![CDATA[]]> </Comments> <ShipTeuOne>0.00</ShipTeuOne> <LoadTonOne>122.00</LoadTonOne> <HostNumOne>2</HostNumOne> <SafeManageNum></SafeManageNum> <InitialRegNo>1111</InitialRegNo> <ShipIdNo>231312</ShipIdNo> <ShipIdNoDate>2015-8-28 0:00:00</ShipIdNoDate> <StockProportion>54.00</StockProportion> <EntLicenseNo></EntLicenseNo> <ShipId>300302191055102943</ShipId> <CancelTime></CancelTime> <ValidDate></ValidDate> <RegCertNum>21111</RegCertNum> <TotalLength></TotalLength> <ShipName>太湖</ShipName> <ArchiveNum>08028</ArchiveNum> <ShipEnName></ShipEnName> <ShipSurveyNum>211155364273</ShipSurveyNum> <ShipRegNum>2123</ShipRegNum> <ShipType>0101</ShipType> <TransType>1</TransType> <Runner>游游船公司</Runner> <BeforeName></BeforeName> <NationCertNum>2123</NationCertNum> <LeaseCretNum>1111</LeaseCretNum> <TempNationCertNum>22222</TempNationCertNum> <ChargeShipType>0</ChargeShipType> <Manager></Manager> <ShipOwner></ShipOwner> <Material>01</Material> <BuildDate>1980-4-1 0:00:00</BuildDate> <ManagerLicenseNum>K0745号</ManagerLicenseNum> <ShipValue>0.00</ShipValue> <RebuildDate>2015-8-28 0:00:00</RebuildDate> <ShipPort>无锡</ShipPort> <ShipPortCode>3225</ShipPortCode> <ShipNationality></ShipNationality> <BuildCompany>船厂</BuildCompany> <GrossTon>153.00</GrossTon> <NetTon>31.00</NetTon> <BuildSite>FJKAK</BuildSite> <Draft>3.00</Draft> <LoadTon>0.00</LoadTon> <ShipTeu></ShipTeu> <GoodsArea>0.00</GoodsArea> <Vehicles>0</Vehicles> <Passengers>130</Passengers> <RatingSpeed>0.00</RatingSpeed> <HostNum>2</HostNum> <MainFrame>182.20</MainFrame> <IsStandard>0</IsStandard> <ShipLength>0.00</ShipLength> <ShipTypeWidth>0.00</ShipTypeWidth> <ShipTypeDepth>0.00</ShipTypeDepth> <IsSailingJh>0</IsSailingJh> <TranLicenseNum>0208003</TranLicenseNum> <VerifyCode>43407</VerifyCode> <LicenseFirstDate>2011-03-17 00:00:00</LicenseFirstDate> <LicenseStartDate>2015-08-28 00:00:00</LicenseStartDate> <LicenseEndDate>2018-08-27 00:00:00</LicenseEndDate> <LicenseIssueDate>2015-8-28 0:00:00</LicenseIssueDate> <IssueOrgName>运输管理局</IssueOrgName> <OrgId>6872b6ce14b042da8127ba6fde4ddb97</OrgId> <OwnerId>300209280855043295</OwnerId> <BusiScopeNames>旅游运输</BusiScopeNames> <BusiScopeName>通客船运输</BusiScopeName> <BusiScopeCodes>0302030101</BusiScopeCodes> <AreaCode>320100</AreaCode> <CertState>1</CertState> <OperState>10</OperState> <CaptainName></CaptainName> <ShipWidth>0.00</ShipWidth> <ShipHeight>0.00</ShipHeight> <TotalLoadTon></TotalLoadTon> <IsInlRiverStandard>0</IsInlRiverStandard> </Ship> <Ship> <IsCJStandard>0</IsCJStandard> <ShipTypeName>集装箱船</ShipTypeName> <InspectDate>2013-6-27 8:55:59</InspectDate> <Comments><![CDATA[]]> </Comments> <ShipTeuOne>50.00</ShipTeuOne> <LoadTonOne>1078.00</LoadTonOne> <HostNumOne>2</HostNumOne> <SafeManageNum></SafeManageNum> <InitialRegNo>12</InitialRegNo> <ShipIdNo></ShipIdNo> <ShipIdNoDate></ShipIdNoDate> <StockProportion>100.00</StockProportion> <EntLicenseNo></EntLicenseNo> <ShipId>301211050949527795</ShipId> <CancelTime></CancelTime> <ValidDate>2012-6-27 0:00:00</ValidDate> <RegCertNum>123</RegCertNum> <TotalLength></TotalLength> <ShipName>6号</ShipName> <ArchiveNum>01413</ArchiveNum> <ShipEnName></ShipEnName> <ShipSurveyNum>2012J2102836</ShipSurveyNum> <ShipRegNum>270512000146</ShipRegNum> <ShipType>0205</ShipType> <TransType>2</TransType> <Runner>限公司</Runner> <BeforeName></BeforeName> <NationCertNum>270512000146</NationCertNum> <LeaseCretNum></LeaseCretNum> <TempNationCertNum>123</TempNationCertNum> <ChargeShipType>0</ChargeShipType> <Manager></Manager> <ShipOwner></ShipOwner> <Material>01</Material> <BuildDate>2012-8-18 0:00:00</BuildDate> <ManagerLicenseNum>2182</ManagerLicenseNum> <ShipValue>0.00</ShipValue> <RebuildDate></RebuildDate> <ShipPort>jj锡</ShipPort> <ShipPortCode>3225</ShipPortCode> <ShipNationality></ShipNationality> <BuildCompany>2312修造厂</BuildCompany> <GrossTon>734.00</GrossTon> <NetTon>477.00</NetTon> <BuildSite>江1561</BuildSite> <Draft>0.00</Draft> <LoadTon>1078.00</LoadTon> <ShipTeu>50.00</ShipTeu> <GoodsArea>1078.00</GoodsArea> <Vehicles>50</Vehicles> <Passengers>0</Passengers> <RatingSpeed>0.00</RatingSpeed> <HostNum>2</HostNum> <MainFrame>280.00</MainFrame> <IsStandard>0</IsStandard> <ShipLength>48.14</ShipLength> <ShipTypeWidth>12.50</ShipTypeWidth> <ShipTypeDepth>3.15</ShipTypeDepth> <IsSailingJh>0</IsSailingJh> <TranLicenseNum>12)0200166</TranLicenseNum> <VerifyCode>63933</VerifyCode> <LicenseFirstDate>2012-11-05 00:00:00</LicenseFirstDate> <LicenseStartDate>2014-10-14 00:00:00</LicenseStartDate> <LicenseEndDate>2014-10-31 00:00:00</LicenseEndDate> <LicenseIssueDate>2014-10-14 0:00:00</LicenseIssueDate> <IssueOrgName>033运输管理处</IssueOrgName> <OrgId>6872b6ce14b042da8127ba6fde4ddb97</OrgId> <OwnerId>301006171506256528</OwnerId> <BusiScopeNames>156146货船运输</BusiScopeNames> <BusiScopeName>0213023通货船运输</BusiScopeName> <BusiScopeCodes>0102010201</BusiScopeCodes> <AreaCode>320200</AreaCode> <CertState>1</CertState> <OperState>10</OperState> <CaptainName></CaptainName> <ShipWidth>12.50</ShipWidth> <ShipHeight>3.15</ShipHeight> <TotalLoadTon></TotalLoadTon> <IsInlRiverStandard>0</IsInlRiverStandard> </Ship> </Ships> </data> </jstmbsinterface>

    解析方式:

    import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    public class AllpagesParse  extends Model<AllpagesParse> {
        
                static  String    ShipName;
                static  String  ShipEnName;
                static  String    ShipIdNo;
                static  String    Runner;
                static  String    EntLicenseNo;
                static  String    ShipOwner;
                static  String    BuildDate;
                static  String    ShipPort;
                static  String    GrossTon;
                static  String    NetTon;
                static  String    Draft;
                static  String    LoadTonOne;
                static  String    ShipTeuOne;
                static  String    Passengers;
                static  String    RatingSpeed;
                static  String    HostNumOne;
                static  String    MainFrame;
                static  String    TotalLength;
                static  String    ShipLength;
                static  String    ShipWidth;
                static  String    ShipTypeDepth;
                static  String    TransType;
                static  String    TranLicenseNum;
                static  String    LicenseStartDate;
                static  String    LicenseEndDate;
                static  String    IssueOrgName;
                static  String    BusiScopeName;
                static  String CertState;
                static  String ShipType;
                public static String     updatetime;
                public static  String   batchnum ;
                public static  String     totalbatch;
                public static  String     fStr;
                public static void parseXML(String respXML) throws DocumentException, MalformedURLException{
                    SAXReader reader = new SAXReader();
                    fStr = respXML.replaceAll("&nbsp;", "");
                    Document doc = DocumentHelper.parseText(fStr); 
                    Element root=doc.getRootElement();//获取根节点  
                    @SuppressWarnings("rawtypes")
                    List list = root.elements("data");
                    List listresult = root.elements("result");
                    for(Object objresult:listresult){
                        Element result = (Element) objresult;
                        updatetime  = result.attributeValue("serverdatetime");
                    }
                    for (Object obj: list) {
                        Element shipElement = (Element) obj;
                        parseShipElement(shipElement);
                    }
                }         
                
                private static void parseShipElement(Element shipElement) {
                    @SuppressWarnings("rawtypes")
                    List list = shipElement.elements();
                    for (Object obj: list) {
                        Element Ships = (Element) obj;
                        String key = Ships.getName();
                        batchnum = Ships.attributeValue("batchnum");
                        totalbatch = Ships.attributeValue("totalbatch");
                        System.out.println("
    "+"Ships_batchnum:"+"	"+batchnum+"
    ");    //当前页数
                        System.out.println("
    "+"Ships_totalbatch:"+totalbatch+"
    ");    //总页数
                        String value = Ships.getTextTrim();
                        @SuppressWarnings("rawtypes")
                        java.util.Iterator Ship = Ships.elementIterator("Ship"); 
                        while(Ship.hasNext()){
                            
                            Element tableItem = (Element) Ship.next();
                            ShipName = tableItem.elementTextTrim("ShipName");
                            BuildDate = tableItem.elementTextTrim("BuildDate");
                            CertState = tableItem.elementTextTrim("CertState"); //1:有效       2:注销 
                            ShipPort = tableItem.elementTextTrim("ShipPort");
                            Draft = tableItem.elementTextTrim("Draft");
                            RatingSpeed = tableItem.elementTextTrim("RatingSpeed");
                            ShipLength = tableItem.elementTextTrim("ShipLength");
                            ShipWidth = tableItem.elementTextTrim("ShipWidth");
                            TransType = tableItem.elementTextTrim("TransType");
                            TranLicenseNum = tableItem.elementTextTrim("TranLicenseNum");
                            LicenseStartDate = tableItem.elementTextTrim("LicenseStartDate");
                            LicenseEndDate = tableItem.elementTextTrim("LicenseEndDate");
                            IssueOrgName = tableItem.elementTextTrim("IssueOrgName");
                            ShipEnName = tableItem.elementTextTrim("ShipEnName");
                            ShipIdNo = tableItem.elementTextTrim("ShipIdNo");
                            Runner = tableItem.elementTextTrim("Runner");
                            EntLicenseNo = tableItem.elementTextTrim("EntLicenseNo");
                            ShipOwner = tableItem.elementTextTrim("ShipOwner");
                            GrossTon = tableItem.elementTextTrim("GrossTon");
                            NetTon = tableItem.elementTextTrim("NetTon");
                            LoadTonOne = tableItem.elementTextTrim("LoadTonOne");
                            ShipTeuOne = tableItem.elementTextTrim("ShipTeuOne");
                            Passengers = tableItem.elementTextTrim("Passengers");
                            HostNumOne = tableItem.elementTextTrim("HostNumOne");
                            MainFrame = tableItem.elementTextTrim("MainFrame");
                            TotalLength = tableItem.elementTextTrim("TotalLength");
                            ShipTypeDepth = tableItem.elementTextTrim("ShipTypeDepth");
                            BusiScopeName = tableItem.elementTextTrim("BusiScopeName");
                            ShipType= tableItem.elementTextTrim("ShipType");
    
                        }
                }
    
    }
    二、嵌套一层
    <?xml version="1.0" encoding="UTF-8"?>
    <response id=”1” cmd=”clone”>
       <src_host_name>192.168.4.205</src_host_name>
       <src_physics_host_name>192.168.4.206</src_physics_host_name>
       <result>1</result>
       <error_code>100</error_code>
    </response>

    解析方式:

                String  dataGot = "xml";
                Document doc = DocumentHelper.parseText(dataGot); 
                Element root=doc.getRootElement();//获取根节点  
                String host_name = root.elementTextTrim("src_host_name");
                String result = root.elementTextTrim("result");
                String error_code = root.elementTextTrim("error_code");            

    三、嵌套两层

    <?xml version="1.0" encoding="UTF-8" ?>
    <Response>
        <MO>
            <Mobile>16357164589</Mobile>
            <Message>哈哈哈哈哈哈哈哈哈哈哈</Message>
            <ReceiveTime>2012-01-12 15:23:12</ReceiveTime>
            <ExtendCode>扩展号</ExtendCode>
            <MsgID>1100</MsgID>
        </MO>
        <MO>
            <Mobile>15957166591</Mobile>
            <Message>我了</Message>
            <ReceiveTime>2012-01-12 15:23:12</ReceiveTime>
            <ExtendCode>扩展号</ExtendCode>
            <MsgID>1101</MsgID>
        </MO>
    </Response>

    解析方式:

                Document doc = DocumentHelper.parseText(xml);
                Element Response = doc.getRootElement();
                Iterator<?> Report = Response.elementIterator("MO");
                while (Report.hasNext()) {
                    Element tableItem = (Element) Report.next();
    //                String msgID = tableItem.elementTextTrim("MsgID");
                    String mobile = tableItem.elementTextTrim("Mobile");
                    String message = tableItem.elementTextTrim("Message");
                    String receiveTime = tableItem.elementTextTrim("ReceiveTime");
                    log.info("SmsReply>>>>>>>>>>mobile:" + mobile + ",message:" + message+",receiveTime:"+receiveTime);
    
                }
  • 相关阅读:
    datum of data matrix
    data matrix with opensource
    wps出现“文档已被其他应用程序锁定,是否以只读模式打开”
    error MSB3073解决办法
    vc6下dll调试
    往客户机子上装dll时,报缺失mfc42d.dll
    进程通信编码和解码
    java后端选型20200729
    Git安装与使用
    Kitty基于Spring Boot、Spring Cloud、Vue.js、Element实现前后端分离的权限管理系统
  • 原文地址:https://www.cnblogs.com/thiaoqueen/p/7046017.html
Copyright © 2020-2023  润新知