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. MonkeyRunner源码分析之工作原理图

    http://www.androidchina.net/1315.html

  2. [Whole Web] [Node.js, PM2] Controlling runaway apps using pm2

    shows how to enable features in your pm2 config file that allow you to prevent runaway apps from bri ...

  3. [转] React Native Navigator — Navigating Like A Pro in React Native

    There is a lot you can do with the React Native Navigator. Here, I will try to go over a few example ...

  4. Android自定义View之ProgressBar出场记

    关于自定义View,我们前面已经有三篇文章在介绍了,如果筒子们还没阅读,建议先看一下,分别是android自定义View之钟表诞生记.android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检 ...

  5. Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例

    1. ArrayList存储自自定义对象并排序的案例: ArrayList存储自自定义对象,并使用Collections对ArrayList存储基本包装类的元素排序. 2. 代码实现: (1)Stud ...

  6. Java实现折半(二分)插入排序

    /*折半插入查找思想:每趟将一个带排序的元素作为关键字插入到已经排好的部分序列的适当位置上,查找适当位置的方法用折半查找法 * 适合记录数较多的场景 * 在查找插入位置时节省了时间 * 在记录移动次数 ...

  7. Python中如何写控制台进度条的整理

    本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧.分享给大家供大家参考.具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n ...

  8. js购物时的放大镜效果

    首先需要两张一样的图片,一张大图,一张小图,大图显示,当鼠标移入时,小图上出现一个滑块,可以滑动,大图也跟着显示,大图的显示区域和小图一样,当滑块滑到不同的位置,大图显示不同的区域,当鼠标移出时,滑块 ...

  9. struts2学生信息管理系统篇章②进度报告篇章

    之前做这个系统的时候是什么都不懂的! 经过一个月的时间,慢慢的java的知识都捡起来了. 对struts2和mvc模式都有一一定程度的了解,汇报一下上次的进度. 这个系统我所有的功能中我暂时只做到了下 ...

  10. 20151212Jquery 工具函数代码备份

    $(function () { /*var str=' jquery '; alert(str); alert($.trim(str));*/ /*var arr=['张三','李四','王五','麻 ...