事情起因:昨天搞了个任务,转移代码,结果隔壁项目组用的是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的安装和使用相关推荐

  1. Java xml 工具 JDOM 使用详解.

    一, 什么是JDOM工具 在编程中, 我们往往需要一些配置数据,  这些值我们一般不会hardcode在代码中的. 而是写在配置文件. 在Java世界中, 我们通常会把配置变量写在xml文件中. 而x ...

  2. JDOM/XPATH编程指南

    本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听说过它的大名,那可真是孤陋寡闻 ...

  3. (转载)JDOM/XPATH编程指南

    JDOM/XPATH编程指南 本文分别介绍了 JDOM 和 XPATH,以及结合两者进行 XML 编程带来的好处. 前言 XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听 ...

  4. 安装设置Android Studio Win7安装

    发一下牢骚和主题无关: 让人等待已久的Google I/O 2013 大会没有给我们带来Android5.0,也没有带来Adnroid4.3等等,但带来了Android Studio,虽说是预览版,又 ...

  5. 基因数据处理72之GATK安装成功

    1.下载: git clone https://github.com/broadgsa/gatk-protected.git 2.安装: git checkout 3.5 mvn clean pack ...

  6. JDOM和XPATH薛谷雨

    XML是一种优秀的数据打包和数据交换的形式,在当今XML大行于天下,如果没有听说过它的大名,那可真是孤陋寡闻了.用XML描述数据的优势显而易见,它具有结构简单,便于人和机器阅读的双重功效,并弥补了关系 ...

  7. Android Studio Win7安装

    分类: android 2013-05-16 22:23 1095人阅读 评论(1) 收藏 举报 让人等待已久的Google I/O 2013 大会没有给我们带来Android5.0,也没有带来Adn ...

  8. JXTA的安装和使用

    JXTA的安装和使用 2007/7/4 上次的<开始JAVA-概念和JDK1.6的安装>一文的介绍了JDK的安装和使用.现在介绍JXTA的安装和使用   一.JXTA的下载 到http:/ ...

  9. JDOM/XPath解析XML简单示例

    引用文章出处:https://www.ibm.com/developerworks/cn/xml/x-jdom/ 简单介绍: XPATH遵循文档对象模型(DOM)的路径格式,由于每个XML文档都可以看 ...

  10. Oracle GoldenGate Director 12.1.2安装及配置

    一.安装前工作: 1.根据官网建议修改游标数大到2000: SQL> show parameter cursor NAME                     TYPE ---------- ...

最新文章

  1. python实现二分查找(折半查找)算法
  2. linux手动安装unzip_centos下离线安装zip和unzip
  3. 程序员编码时都戴耳机?到底在听什么?
  4. python可以干嘛知乎-一行Python代码能做什么?
  5. 文巾解题 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
  6. 【新星计划】Python print输出带颜色 总结
  7. java网关限流_网关限流使用
  8. 做网站用UTF-8还是GB2312?
  9. 作者:杜圣东(1981-),男,西南交通大学信息科学与技术学院讲师,中国计算机学会(CCF)和国际计算机学会(ACM)会员。...
  10. SpringBoot—jasypt加解密库的使用方法
  11. 编译ok6410linux内核,Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
  12. android 倒计时handle,android -handler 实现倒计时
  13. 设置log缓存_全局变量、事件绑定、缓存爆炸?Node.js内存泄漏问题分析
  14. linux环境下通过nginx实现tomcat集群
  15. 关于EasyUI查询功能的二级联动
  16. php云标签,php 创建标签云的代码示例
  17. C语言通讯录管理系统开发
  18. linux内核无锁cas,无锁编程以及CAS
  19. wamp mysql 端口_Wamp修改端口的方法
  20. Navicat模糊查询表

热门文章

  1. 计算机网络教程第五版|微课版 - 相关微课视频
  2. 2021-07-10树莓派PWM控制三极管(S8050)实现风扇调速
  3. matlab对控制系统进行时域和频域联合分析
  4. 陶瓷PCB电路板生产工艺
  5. SceneKit中文文档
  6. 区块链、无人驾驶、量子计算、感知智能……2050 年的技术什么样?
  7. 数据结构与算法分析(一)基础
  8. 基础VLAN划分(思科)
  9. Struts2拦截器-MethodFilterInterceptor
  10. masm32v12编译器自带库masm32.lib在nasm中的使用。