JDOM
2016-05-07 16:59
337 查看
JDOM是什么:
To provide a complete, Java-based solution for accessing, manipulating, and outputting XML data from Java code.JDOM与其他几种XML解析工具的比较:
DOM VS SAX VS JDOM VS DOM4J: http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html结合文章的结论,对于小型xml文件, 而且调用不频繁的操作, 可以直接使用JDOM来完成。
示例:
以idc解析xml为例xml:
<?xml version="1.0" encoding="UTF-8"?> <Agent> <Region> <RegionName>beijing</RegionName> <IDC> <IDCName>CY</IDCName> <Item> <IP>192.168.121.0</IP> <MASK>255.255.255.0</MASK> </Item> <Item> <IP>192.168.122.0</IP> <MASK>255.255.255.0</MASK> </Item> </IDC> </Region> <Region> <RegionName>shanghai</RegionName> <IDC> <IDCName>HP</IDCName> <Item> <IP>192.168.63.0</IP> <MASK>255.255.255.0</MASK> </Item> </IDC> </Region> </Agent>
Java代码:
public static Idc parserXml(String fileName, String ip) { SAXBuilder builder = new SAXBuilder(); Idc resIdc = new Idc(); try { Document document = builder.build(fileName); Element sgagent = document.getRootElement(); List regionList = sgagent.getChildren("Region"); for (Object ele:regionList) { Element region = (Element) ele; List idcs = region.getChildren("IDC"); for (Object eleIdc:idcs) { Element idc = (Element)eleIdc; List items = idc.getChildren("Item"); for (Object eleItem:items) { Element item = (Element)eleItem; String idcIp = item.getChild("IP").getValue(); String idcMask = item.getChild("MASK").getValue(); int mask = IpUtil.convertMaskToInt(idcMask); if (IpUtil.checkSameSegment(ip, idcIp, mask)) { resIdc.region = region.getChild("RegionName").getValue(); resIdc.idc = idc.getChild("IDCName").getValue(); return resIdc; } } } System.out.println(region.getChild("RegionName").getName() + ":" + region.getChild("RegionName").getValue()); } } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } resIdc.region = "unkown"; resIdc.idc = "unkown"; return resIdc; }
相关文章推荐
- 《Thinking In Java第四版》拾遗
- 10进制向16进制转化
- Remove Linked List Elements
- delphi线程的创建、挂起、激活与终止
- 中缀转后缀问题代码(水数据改变世界=。=)
- 前端开发中的字符编码
- JAVA中Iterator遍历,添加出现的ConcurrentModificationException异常
- Win7下Tomcat6的安装及使用
- c++单例模式 ---超详细
- Codeforces Round #254 (Div. 1) D. DZY Loves Strings hash 暴力
- ultraedit15.00.0.1046注册码
- poj 1160 Post Offices(经典dp)
- 把字符串转换成整数
- Java反射机制浅析
- bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
- 【SSH网上商城项目实战04】EasyUI菜单的实现
- Yii2.0模型层数据验证和thinkPHP3.2框架模型层数据验证对比
- 做人
- 16进制
- 数论知识总结