zoukankan      html  css  js  c++  java
  • JDOM

    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;
    }
  • 相关阅读:
    石家庄的联通破网络,请大家鉴定
    快速动态访问属性
    TcpRouter端口转发工具
    谈谈我的开发秘密武器
    搞清如何使用oAuth 1.0 & 1.0a
    回顾我学过的编程语言
    jQuery moible 开发笔记之项目设计
    从Minecraft(我的世界)看游戏设计外行人的游戏杂谈
    某android平板项目开发笔记aChartEngine图表显示(2)
    R语言绘图学习笔记之Scatter plots
  • 原文地址:https://www.cnblogs.com/L-aho/p/5468648.html
Copyright © 2011-2022 走看看