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;
}

JDOM的更多相关文章

  1. 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)

    一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...

  2. 意外关机引起 IntelliJ IDEA 报 org.jdom.input.JDOMParseException 异常的,解决办法

    详细错误如下: Error:Internal error: (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容.org.jdo ...

  3. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  4. 摘抄的 JAVA JDOM 操作XML文件

    JDOM修炼篇 用过XERCES的程序员都会感到,有时候用一句话就可以说清楚的事,当用XERCES的API来实现时,要三四行程序.   回页首 获得并安装JDOM 在 http://www.jdom. ...

  5. 使用JDOM操作XML

    JDOM介绍 JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点. JDOM的使用 首先下载JDOM的JAR包,本文使用的是j ...

  6. sax/dom/jdom/dom4j的区别

    sax/dom/jdom/dom4j的区别[转] 博客分类: xml   网上能够查到很多的4种解析方式的区别,我再做一下摘录和总结,顺带给自己做个备份. SAX sax分析器在对xml文档进行分析时 ...

  7. xml解析工具-jdom

    前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...

  8. JavaWeb学习笔记——JDOM

    JavaDOC的网址:http://www.jdom.org/docs/apidocs/index.html import java.io.FileOutputStream; import org.j ...

  9. jdom xml解析

    import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.xml. ...

  10. Spring相关:jdom学习:读取xml文件

    云课堂马士兵的spring2.5课程中提到的 用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类 ...

随机推荐

  1. 特殊的forward_list操作

    为了理解forward_list为什么有特殊版本的添加和删除操作,考虑当我们从一个单向链表中删除一个元素时会发生什么.当添加或删除一个元素时,删除或添加的元素之前的那个元素的后继会发生变化.为了添加或 ...

  2. 从源码角度深入分析log4j配置文件使用

    log4j在日常开发中经常使用,但有时候对 配置文件应该放到什么位置有疑惑.现在我们通过从代码的角度来看待这个问题, 看完后你也许会恍然大悟哦. 开始吧. Log4j的组成及架构: Log4j由三个重 ...

  3. C#数据库读取数据后转换为INT32后计算的小技巧

    这有什么难的,不管是什么数据库, 首先分别读出userinfo中usermoney的值 存入s1,card中extramoney的值s2 读出字段数据你应该会吧! 再用userinfo中字段userm ...

  4. 多媒体应用-swift

    照片选择主要是通过UIImagePickerController控制器实例化一个对象,然后通过self.PresentViewController方法推出界面显示.需要实现代理UIImagePicke ...

  5. Add an IPv6 route through an interface

    Not often needed, sometimes in cases of dedicated point-to-point links. 7.4.1. Using "ip" ...

  6. html5 meta标签属性整理

    声明文档使用的字符编码 <meta charset='utf-8'> 声明文档的兼容模式 //指示IE以目前可用的最高模式显示内容<meta http-equiv="X-U ...

  7. 初学Android:意图之intent

    Intent意为:意图.简单的理解就是用来从一个Activity/Service跳转到另一个Activity/Service中,并可以携带数据,也可以在这个程序调用别的程序.这样我们虽然不懂如何结息条 ...

  8. 解决VirtualBox错误:“FATAL:No bootable medium found!”

    VirtualBox错误:“FATAL:No bootable medium found!” 用VirtualBox安装系统出现这个错误的几率极高,因为当哥出现同样问题的时候股沟了下”FATAL:No ...

  9. easyui-helloworld

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 03_JqueryAjax_异步请求Servlet

    [Ajax 简述] jquery对Ajax提供了更方便的代码:$ajax({ops})来发送异步请求. 首先说一个Ajax的特性,它是永安里发送异步请求,请求的是服务器,但不会刷新页面. 例如在注册功 ...