解析XML文件
发布时间:2020-12-16 05:53:44 所属栏目:百科 来源:网络整理
导读:【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)); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |