Jdom的安装和使用
事情起因:昨天搞了个任务,转移代码,结果隔壁项目组用的是dom4j库,我们部件用的是jdom库,结果对于没搞过xml解析的还是有点难度,不过还好看代码还是大致能懂,不过两个库还是有点差异,下班在即就没搞,回来之后,想试下jdom库,于是广泛搜索资料整理一下,非常感谢那么多的贡献者,考虑到对于从未使用过的来说,貌似缺少一个足够详细的资料,于是整理了一下。
一、Jdom的下载和安装
可至jdom官网http://www.jdom.org下载,目前最新的是2.05,不过要是怀旧用了jdk1.2到1.4,也可以用1.1.3,不得不说,老外的开源软件的确是好。上次搞gcc2.85去编译raw的时候,发现那作者居然从1998年维护到2002年,不容易啊!
使用两个版本,区别只是导出包的时候,包名是org.jdom还是org.jdom2;下载后,将jdom.jar(2.05版为jdom-2.0.5.jar,解压后即可见到;1.1.3版为jdom-1.1.3.jar,解压后在build目录下),将jar文件放到一个可靠的位置,相对专业的位置是classpath,比如楼主参考放在了C:\Program Files\Java\jre6\lib\ext,实际上,这个位置可以任意,因为是需要添加jar文件路径工场的build path的,不过编程也需要专业一点,以及方便归档,所以建议还是放到lib/ext。至此,安装完毕
二、Jdom使用准备—生成XML文件
新建工程GenerateXML,并添加jar文件至工程build path,如图:
准备以下代码,代码抄自ltb6w
/*
* 作者:ltb6w
* blog:http://hi.baidu.com/ltb6w
* 引用人:coder_xia
*/
package net.csdn.blog;
import java.io.*;
import org.jdom.*;
import org.jdom.output.*;
public class GenerateXML
{
public void BuildXML() throws Exception
{
Element root,student,number,name,age;
root = new Element("student-info"); //生成根元素:student-info
student = new Element("student"); //生成元素:student,该元素中将包含元素number,name,age
number = new Element("number");
name = new Element("name");
age = new Element("age");
Document doc = new Document(root); //将根元素植入文档doc中
number.setText("001");
name.setText("lnman");
age.setText("24");
student.addContent(number);
student.addContent(name);
student.addContent(age);
root.addContent(student);
Format format = Format.getCompactFormat();
format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
format.setIndent(" "); //设置xml文件的缩进为4个空格
XMLOutputter XMLOut = new XMLOutputter(format);//在元素后换行,每一层元素缩排四格
XMLOut.output(doc, new FileOutputStream("studentinfo.xml"));
}
public static void main(String[] args) throws Exception
{
GenerateXML w = new GenerateXML();
System.out.println("Now we build an XML document .....");
w.BuildXML();
System.out.println("finished!");
}
}
不过此时eclipse会有报错:
Access restriction: The type Element is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\ext\jdom-1.1.3.jar
对于这个问题,删除build path里的JRE System Library再添加即可,Add Library——JRE System Library到如下界面选择
生成的xml文件内容如下:
<?xml version="1.0" encoding="gb2312"?>
<student-info>
<student>
<number>001</number>
<name>lnman</name>
<age>24</age>
</student>
</student-info>
三、XML文件解析
新建XMLParse工程
/*
* 作者:ltb6w
* blog:http://hi.baidu.com/ltb6w
* 引用人:coder_xia
*/
package net.csdn.blog;
import org.jdom.input.*;
import org.jdom.*;
import java.util.*;
public class XmlParse
{
public static void main(String[] args) throws Exception
{
SAXBuilder builder = new SAXBuilder();
Document read_doc = builder.build("studentinfo.xml");
Element stu = read_doc.getRootElement();
List list = stu.getChildren("student");
for(int i = 0;i < list.size();i++)
{
Element e = (Element)list.get(i);
String str_number = e.getChildText("number");
String str_name = e.getChildText("name");
String str_age = e.getChildText("age");
System.out.println("---------STUDENT--------------");
System.out.println("NUMBER:" + str_number);
System.out.println("NAME:" + str_name);
System.out.println("AGE:" + str_age);
System.out.println("------------------------------");
System.out.println();
}
}
}
搞定!
在读取xml文件时,记得dom4j有elementtext方法,直接获取每一个Element的属性值即可,而jdom的解析貌似都是从根节点开始再getChildText获取节点值,各有所长吧。
参考网址:
1、http://hi.baidu.com/ltb6w/item/3a5cf11926fda60ce75c361a
2、http://liuwentao.iteye.com/blog/59978
Jdom的安装和使用相关推荐
- Java xml 工具 JDOM 使用详解.
一, 什么是JDOM工具 在编程中, 我们往往需要一些配置数据, 这些值我们一般不会hardcode在代码中的. 而是写在配置文件. 在Java世界中, 我们通常会把配置变量写在xml文件中. 而x ...
- JDOM/XPATH编程指南
本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听说过它的大名,那可真是孤陋寡闻 ...
- (转载)JDOM/XPATH编程指南
JDOM/XPATH编程指南 本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听 ...
- 安装设置Android Studio Win7安装
发一下牢骚和主题无关: 让人等待已久的Google I/O 2013 大会没有给我们带来Android5.0,也没有带来Adnroid4.3等等,但带来了Android Studio,虽说是预览版,又 ...
- 基因数据处理72之GATK安装成功
1.下载: git clone https://github.com/broadgsa/gatk-protected.git 2.安装: git checkout 3.5 mvn clean pack ...
- JDOM和XPATH薛谷雨
XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听说过它的大名,那可真是孤陋寡闻了.用XML描述数据的优势显而易见,它具有结构简单,便于人和机器阅读的双重功效,并弥补了关系 ...
- Android Studio Win7安装
分类: android 2013-05-16 22:23 1095人阅读 评论(1) 收藏 举报 让人等待已久的Google I/O 2013 大会没有给我们带来Android5.0,也没有带来Adn ...
- JXTA的安装和使用
JXTA的安装和使用 2007/7/4 上次的<开始JAVA-概念和JDK1.6的安装>一文的介绍了JDK的安装和使用.现在介绍JXTA的安装和使用 一.JXTA的下载 到http:/ ...
- JDOM/XPath解析XML简单示例
引用文章出处:https://www.ibm.com/developerworks/cn/xml/x-jdom/ 简单介绍: XPATH遵循文档对象模型(DOM)的路径格式,由于每个XML文档都可以看 ...
- Oracle GoldenGate Director 12.1.2安装及配置
一.安装前工作: 1.根据官网建议修改游标数大到2000: SQL> show parameter cursor NAME TYPE ---------- ...
最新文章
- python实现二分查找(折半查找)算法
- linux手动安装unzip_centos下离线安装zip和unzip
- 程序员编码时都戴耳机?到底在听什么?
- python可以干嘛知乎-一行Python代码能做什么?
- 文巾解题 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
- 【新星计划】Python print输出带颜色 总结
- java网关限流_网关限流使用
- 做网站用UTF-8还是GB2312?
- 作者:杜圣东(1981-),男,西南交通大学信息科学与技术学院讲师,中国计算机学会(CCF)和国际计算机学会(ACM)会员。...
- SpringBoot—jasypt加解密库的使用方法
- 编译ok6410linux内核,Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
- android 倒计时handle,android -handler 实现倒计时
- 设置log缓存_全局变量、事件绑定、缓存爆炸?Node.js内存泄漏问题分析
- linux环境下通过nginx实现tomcat集群
- 关于EasyUI查询功能的二级联动
- php云标签,php 创建标签云的代码示例
- C语言通讯录管理系统开发
- linux内核无锁cas,无锁编程以及CAS
- wamp mysql 端口_Wamp修改端口的方法
- Navicat模糊查询表