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;
}
JDOM的更多相关文章
- 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)
一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...
- 意外关机引起 IntelliJ IDEA 报 org.jdom.input.JDOMParseException 异常的,解决办法
详细错误如下: Error:Internal error: (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容.org.jdo ...
- Javaweb学习笔记——使用Jdom解析xml
一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...
- 摘抄的 JAVA JDOM 操作XML文件
JDOM修炼篇 用过XERCES的程序员都会感到,有时候用一句话就可以说清楚的事,当用XERCES的API来实现时,要三四行程序. 回页首 获得并安装JDOM 在 http://www.jdom. ...
- 使用JDOM操作XML
JDOM介绍 JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点. JDOM的使用 首先下载JDOM的JAR包,本文使用的是j ...
- sax/dom/jdom/dom4j的区别
sax/dom/jdom/dom4j的区别[转] 博客分类: xml 网上能够查到很多的4种解析方式的区别,我再做一下摘录和总结,顺带给自己做个备份. SAX sax分析器在对xml文档进行分析时 ...
- xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...
- JavaWeb学习笔记——JDOM
JavaDOC的网址:http://www.jdom.org/docs/apidocs/index.html import java.io.FileOutputStream; import org.j ...
- jdom xml解析
import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.xml. ...
- Spring相关:jdom学习:读取xml文件
云课堂马士兵的spring2.5课程中提到的 用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类 ...
随机推荐
- 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 ...
- Redis学习手册(Hashes数据类型)
一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Ag ...
- Offer是否具有法律效力?
版权声明:原创作品,同意转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.本文地址: http://blog.csdn.net/jobchanceleo/archi ...
- mysqld --debug-sync
http://hedengcheng.com/?p=238https://dev.mysql.com/doc/internals/en/debug-sync-facility.html mysqld ...
- Docker container network configuration
http://xmodulo.com/networking-between-docker-containers.html How to set up networking between Docker ...
- [RAC] oracle rac 后台进程
一.RAC后台进程 LMON:LOCK Monitor Processes 也被称为Global enqueue service monitor 监控整个集群状况,维护GCS的内存结构 监控非正常终止 ...
- sqlserver临时表排序问题
在2005和2008中,如果将有序的记录插入临时表,则从临时表查看出来的记录是有序的(不使用Order by也是有序状态) 但从2012开始,即使插入的记录集是有序的,查看出来的结果变得无序了,需要依 ...
- 用Android-X86和VirtualBox打造高性能Android开发环境
不知道有多少Android开发着对Android虚拟机的那悲剧的性能有意见,反正我的看法是:那速度实在是太坑爹了! 为什么Android虚拟机比iOS和WP7的虚拟机要慢很多呢?原因如下: 1. An ...
- Java 十六进制转十进制
public static int hexToDecimal(String hex) { int decimalValue = 0; for (int i = 0; i < hex.length ...
- 学习XAML中的一些基本语法
1:slider 控件 2:x:名称空间的使用 3:事件处理器 event handler { <Button x:Name="button1" Click=" ...