public static void main(String[] args) { final String OS_VERSION_FILE_PATH = AhDirTools.getOsDetectionDir()+"os_dhcp_fingerprints_changes.xml"; Map<String,String> hm = new HashMap<>(); SAXReader reader = new SAXReader(); Document document; try { document = reader.read(new File(OS_VERSION_FILE_PATH)); Element root = document.getRootElement(); List<?> fingerprintElems = root.elements(); for (Object obj : fingerprintElems) { Element fingerprintElem = (Element) obj; String node_fingerprint_name = fingerprintElem.getName(); String osName = fingerprintElem.attributeValue("osname"); for(Iterator iterator = fingerprintElem.elementIterator();iterator.hasNext();){ Element option55Elem = (Element) iterator.next(); String node_option55_name = option55Elem.getName(); String node_option55_text = option55Elem.getText(); Attribute version = option55Elem.attribute("version"); String version_name = version.getName(); String version_text = version.getText(); if(NmsUtil.compareSoftwareVersion("6.1.3.0",version_text) >=0){ if(!hm.containsKey(node_option55_text)){ hm.put(node_option55_text,osName); } } } } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
<?xml version="1.0" encoding="UTF-8"?> <os_dhcp_fingerprints> <os_dchp_fingerprint osname="CrOS"> <option55 version="6.1.2.0">1,121,33,3,6,12,15,26,28,51,54,58,59,119</option55> <option55 version="6.1.2.0">1,119,252</option55> </os_dchp_fingerprint> <os_dchp_fingerprint osname="Android"> <option55 version="6.1.3.0">1,59</option55> </os_dchp_fingerprint> </os_dhcp_fingerprints>