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. Eclipse reports that Android SDK Content Loader has encountered a problem. parseSdkContent failed.

    1) Download the SDK platform for API 20 (4.4W) 2) Navigate to your sdk folder (should be like D:\Ecl ...

  2. Redis学习手册(Hashes数据类型)

    一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Ag ...

  3. Offer是否具有法律效力?

    版权声明:原创作品,同意转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.本文地址: http://blog.csdn.net/jobchanceleo/archi ...

  4. mysqld --debug-sync

    http://hedengcheng.com/?p=238https://dev.mysql.com/doc/internals/en/debug-sync-facility.html mysqld ...

  5. Docker container network configuration

    http://xmodulo.com/networking-between-docker-containers.html How to set up networking between Docker ...

  6. [RAC] oracle rac 后台进程

    一.RAC后台进程 LMON:LOCK Monitor Processes 也被称为Global enqueue service monitor 监控整个集群状况,维护GCS的内存结构 监控非正常终止 ...

  7. sqlserver临时表排序问题

    在2005和2008中,如果将有序的记录插入临时表,则从临时表查看出来的记录是有序的(不使用Order by也是有序状态) 但从2012开始,即使插入的记录集是有序的,查看出来的结果变得无序了,需要依 ...

  8. 用Android-X86和VirtualBox打造高性能Android开发环境

    不知道有多少Android开发着对Android虚拟机的那悲剧的性能有意见,反正我的看法是:那速度实在是太坑爹了! 为什么Android虚拟机比iOS和WP7的虚拟机要慢很多呢?原因如下: 1. An ...

  9. Java 十六进制转十进制

    public static int hexToDecimal(String hex) { int decimalValue = 0; for (int i = 0; i < hex.length ...

  10. 学习XAML中的一些基本语法

    1:slider 控件 2:x:名称空间的使用 3:事件处理器 event handler {    <Button x:Name="button1" Click=" ...