加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解析XML文件

发布时间:2020-12-16 00:26:34 所属栏目:百科 来源:网络整理
导读:【XML文件如下】 ?xml version="1.0" encoding="GBK"? ROOTSYSTEMSYSTEM_ID![CDATA[test]]/SYSTEM_IDCHECK_CODE![CDATA[test]]/CHECK_CODESYS_ORGAN_ID![CDATA[11]]/SYS_ORGAN_ID/SYSTEMREFHOST_INFO_ID![CDATA[22]]/HOST_INFO_IDGUEST_INFO_ID![CDATA[33]]/

【XML文件如下】

<?xml version="1.0" encoding="GBK"?> 
<ROOT>
<SYSTEM>
<SYSTEM_ID><![CDATA[test]]></SYSTEM_ID>
<CHECK_CODE><![CDATA[test]]></CHECK_CODE>
<SYS_ORGAN_ID><![CDATA[11]]></SYS_ORGAN_ID>
</SYSTEM>
<REF>
<HOST_INFO_ID><![CDATA[22]]></HOST_INFO_ID>
<GUEST_INFO_ID><![CDATA[33]]></GUEST_INFO_ID>
</REF> 
<INFOEXTERNALFILES>
<FILE>
<FILE_NAME><![CDATA[1111]]></FILE_NAME>
<FILE_URL><![CDATA[22222]]></FILE_URL>
</FILE>
<FILE>
<FILE_NAME><![CDATA[33333]]></FILE_NAME>
<FILE_URL><![CDATA[444444]]></FILE_URL>
</FILE>
</INFOEXTERNALFILES>
<ATTACHMENTS> 
<ATTACHMENT>
<ATCH_ID><![CDATA[304457]]></ATCH_ID>
<ATCH_NAME><![CDATA[d0c8a786c9177f3e82bb1f4a71cf3bc79e3d56ee]]></ATCH_NAME>
<FILE_NAME><![CDATA[d0c8a786c9177f3e82bb1f4a71cf3bc79e3d56ee.jpg]]></FILE_NAME>
</ATTACHMENT>
<ATTACHMENT>
<ATCH_ID><![CDATA[304457]]></ATCH_ID>
<ATCH_NAME><![CDATA[c2fdfc039245d688205f5ee3a5c27d1ed21b241c]]></ATCH_NAME>
<FILE_NAME><![CDATA[c2fdfc039245d688205f5ee3a5c27d1ed21b241c.jpg]]></FILE_NAME>
</ATTACHMENT>
</ATTACHMENTS>
</ROOT>

public class ResolveParamXml {

    public void getParamXml(String filename,HashMap hm){
        SAXReader saxReader = new SAXReader();
        Document doc = null;
        try {
            doc = saxReader.read(new File(filename));
            Element root = doc.getRootElement();

            int num = -1;
            int fcont = 0;
            int acont = 0;
            Iterator iterator = root.elementIterator();
            while(iterator.hasNext()){
                Element elment =(Element) iterator.next();
                Iterator it = elment.elementIterator();
                while(it.hasNext()){
                    Element element = (Element)it.next();
                    if(element.getName().equals("FILE")){
                        fcont++;
                        //System.out.println(fcont+" :file 标签出现的次数");
                    }
                    if(element.getName().equals("ATTACHMENT")){
                        acont++;
                        //System.out.println(acont+" :attachment 标签出现的次数");
                    }
                    hm.put(element.getName(),element.getText());

                    Iterator itor = element.elementIterator();
                    if(itor.hasNext()){
                       num++;
                    }
                    while(itor.hasNext()){

                        Element e = (Element)itor.next();
                        System.out.println(e.getName()+num+" : "+e.getText());
                        hm.put(e.getName()+num,e.getText());
                    }
                }
            }
             hm.put("FILE",String.valueOf(fcont));
             hm.put("ATTACHMENT",String.valueOf(acont));
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

    }
    public static void main(String [] args){
        ResolveParamXml rpx = new ResolveParamXml();
        HashMap hashMap = new HashMap();
        rpx.getParamXml("D:asdf.xml",hashMap);
        System.out.println(hashMap.get("SYSTEM_ID"));
        System.out.println(hashMap.get("CHECK_CODE"));
        System.out.println(hashMap.get("SYS_ORGAN_ID"));
        System.out.println(hashMap.get("HOST_INFO_ID"));
        System.out.println(hashMap.get("GUEST_INFO_ID"));
        int fcont = Integer.parseInt(hashMap.get("FILE").toString());
        int acont = Integer.parseInt(hashMap.get("ATTACHMENT").toString());
        for (int i = 0; i < fcont; i++) {
            System.out.println(hashMap.get("FILE_NAME" + i));
            System.out.println(hashMap.get("FILE_URL" + i));
        }
        for (int i = fcont; i < acont+fcont; i+=1) {
            System.out.println(hashMap.get("ATCH_ID"+i));
            System.out.println(hashMap.get("ATCH_NAME"+i));
            System.out.println(hashMap.get("FILE_NAME"+i));
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读