JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序。它的设计包含 Java 语言的语法乃至语义。
JAXP (用于 XML 语法分析的 Java API)包含了三个软件包
–org.w3c.dom ,W3C 推荐的用于 XML 标准规划文档对象模型的 Java 工具
–org.xml.sax ,用于对 XML 进行语法分析的事件驱动的简单 API
–javax.xml.parsers ,工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析器工具. JDOM 能够替换 org.w3c.dom 软件包来有计划地操作 XML 文档

JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。
JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念等),把SAX和DOM的功能有效地结合起来。
JDOM是用Java语言读、写、操作XML的新API函数。在直接、简单和高效的前提下,这些API函数被最大限度的优化。

JDOM 主要用来弥补DOM及SAX在实际应用当中的不足之处。这些不足之处主要在于SAX没有文档修改、随机访问以及输出的功能,而对于DOM来说,JAVA程序员在使用时来用起来总觉得不太方便

jdom官方网站http://www.jdom.org/,目前最新包为:JDOM2.0.5.

例子:

package com.jdom;

import java.io.File;
import java.io.FileOutputStream;
import java.util.List; import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter; public class JDomTest2 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new File("student.xml")); Element element = doc.getRootElement(); System.out.println(element.getName());
// 获取第一个
Element hello = element.getChild("学生"); System.out.println(hello.getText()); List<Element> els = element.getChildren();
for (Element el : els) {
List elList = el.getAttributes();
for (int i = 0; i < elList.size(); i++) {
Attribute attr = (Attribute) elList.get(i); String attrName = attr.getName();
String attrValue = attr.getValue(); System.out.println(attrName + "=" + attrValue);
}
System.out.println("姓名:" + el.getChildText("姓名"));
System.out.println("性别:" + el.getChildText("性别"));
System.out.println("年龄" + el.getChildText("年龄"));
System.out.println("===============");
} //可以对XML进行编辑
Element addEl = new Element("学生");
Attribute attr = new Attribute("学号", "4"); Element addEl01 = new Element("姓名");
addEl01.setText("我爱罗");
addEl.addContent(addEl01);
Element addEl02 = new Element("性别");
addEl02.setText("男");
addEl.addContent(addEl02); addEl.setAttribute(attr);
element.addContent(addEl); XMLOutputter out = new XMLOutputter(Format.getPrettyFormat()); out.output(doc, new FileOutputStream("student2.xml")); }
}

1、首先读取XML文件。

2、获取根节点,并取得根节点下的子节点,详见截图。

3、输出XML文件各个节点的值,详见截图。

4、通过JDOM可以编进XML,并生成新的XML,详见截图。

附XML:

<?xml version="1.0" encoding="utf-8"?>
<学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd" >
<学生 学号="1">
<姓名>张三</姓名>
<性别>男</性别>
<年龄>20</年龄>
</学生>
<学生 学号="2">
<姓名>李四</姓名>
<性别>女</性别>
<年龄>19</年龄>
</学生>
<学生 学号="3">
<姓名>王五</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
</学生名册>

xml--通过jdom解析及生产XML的更多相关文章

  1. Dom4j操作XML实战,解析和插入XML实例

    本例子是用XML来代替数据库的,XML的每个节点代替数据库一行数据. 直说过程: XML文件结构:定义了一个名为:User.xml的文件: <?xml version="1.0&quo ...

  2. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  3. Android XML文档解析(一)——SAX解析

    ---------------------------------------------------------------------------------------------------- ...

  4. JDOM方法实现对XML文件的解析

    首先要下载JDOM.jar包,下载地址:http://download.csdn.net/detail/ww6055/8880371 下载到JDOM.jar包之后导入到工程中去. 实例程序: book ...

  5. 使用JDom解析XML文档模拟Spring的配置文件解析

    在J2EE项目中可能会涉及到一些框架的使用,最近接触到了SSH,拿Spring来说配置文件的使用是相当重要的,Spring的配置文件是一个xml文件,Spring是如何读取到配置文件并进行依赖注入的呢 ...

  6. jdom解析xml

    这次把代码整理了一下,打包发上来了,程序中需要用到的jar包也一起打在里面了,有兴趣的朋友可以解压后直接导入的eclipse里运行! xml是一种广为使用的可扩展标记语言,java中解析xml的方式有 ...

  7. 第三方工具Jdom解析XML

    需要导入的jar包:jdom-2.0.6.jar package com.huawei.xml; import java.io.File;import java.io.FileOutputStream ...

  8. 简单使用JDOM解析XML

    原文:http://liuwentao.iteye.com/blog/59978 使用JDOM解析XML一.前言JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创 ...

  9. Java解析XML:Jdom解析和SAX解析

    今天看了Java解析XML的几种方法,记录一下 1.Jdom解析 (1)读取XML内容 private static void readXML() { // TODO Auto-generated m ...

随机推荐

  1. input中id和name属性的区别。

    input中id和name属性的区别. 做网站很久了,但到现在还没有搞明白input中name和id的区别,最近学习jquery,又遇到这个问题,就在网上搜集资料.看到这篇,就整理出来,以备后用. 可 ...

  2. Repeater和Gridview前台显示行号的方法

    Repeater : Container.ItemIndex (行号从零开始,如果想改为从1开始,那么可以将以上的代码改为Container.ItemIndex + 1),见下示例: <asp: ...

  3. 破解网络投票IP限制、验证码限制、COokie限制、Seesion限制的方法!(转)

    顾名思义,网络投票就是在网络上进行的投票活动,但和其他类型的投票不同的是:网络投票是建立在网络投票系统上的,而结果完全由程序输出,无需人工参与.这既是网络投票系统的优点也是其缺点,没有了人工的参与,其 ...

  4. @Html.TextBox 的使用

    @Html.TextBox( }); //限制 text 的最大输入字符数为 10个 @Html.TextBox("users","",new {@class= ...

  5. scala知识点(二)

    Scala允许使用三个引号来进行多行字符引用:(引自) val longString = """Line 1 Line Line """; ...

  6. Oracle的rownum原理

    Oracle中,按特定条件查询前N条记录,用个rownum就搞定了: SQL> select * from dept where rownum<3; 而对rownum用"> ...

  7. 分享自lordinloft 《[转载]COMPILE_OPT 的用法介绍》

    来源:http://blog.sina.com.cn/s/blog_63180b75010117oj.html#bsh-73-372143085

  8. GIS业务逻辑

    三维怎么加载数据文件? OpenFileDialog frm = new OpenFileDialog(); frm.Filter = "文件数据集|*.tile|多时相数据集|*.Temp ...

  9. easy ui 下拉框绑定数据select控件

    easy ui 中的下拉框控件叫做select,具体代码如下: html代码:①.这是一个公司等级的下拉框 <tr> <td>公司等级:</td> <td&g ...

  10. jsf2.0视频

    jsf2.0 入门视频 教程   需要的看下.初次录视频.还有很多需要完善. JSF交流QQ群84376982 JSF入门视频下载地址  http://pan.baidu.com/s/1jG3y4T4 ...