- 浏览: 237994 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (165)
- Java基础 (49)
- 开发工具 (3)
- Python基础 (1)
- Oracle基础 (9)
- Java 符号计算 (0)
- 计算机基本原理 (10)
- SQL (6)
- javascript (16)
- HTML (2)
- XML (4)
- 程序员之路 (7)
- JDBC (1)
- Unicode (0)
- 字符编码 (3)
- JSP基础 (2)
- Servlet&JSP (9)
- MySQL基础 (1)
- UML基础 (1)
- Hibernate (2)
- Java包 (1)
- Spring (1)
- Struts2 (9)
- 系统命令 (1)
- Tomcat (1)
- Windows (1)
- Android (1)
- C#基础 (14)
- HTML5 (1)
- .NET基础 (1)
- 数据库基础 (2)
- ASP.NET基础 (7)
- 开源Java (3)
- 趣味算法 (1)
- 面向对象思想 (1)
- 软件应用 (1)
- Web工程 (1)
- jquery (2)
- JPA (0)
- 设计模式 (0)
最新评论
-
静夜独窗:
JavaBean组件能说的具体一点吗,我感觉这样说理解的不清晰 ...
EL 表达式语言 -
静夜独窗:
在Java中,不同字符集编码的转换是通过Unicode作为中介 ...
JavaWeb中的乱码产生与解决方案
JDOM Java Document Object Model
JDOM使用对象树来表示XML.
JDOM使用SAX解析器来解析XML文档,构建JDOM树.JDOM本身没有解析器.
JDOM主要API以类为主,而非接口.简化了编程,但限制了灵活性.JDOM使用集合类作为对象存储的容器.
JDOM共有七个包
org.jdom包中包含了表示XML文档及其组成部分的类.如Document,Element,Attribute和CDATA.
org.jdom.xpath 包含 XPath 查找类.
org.jom.transform 包含 XSTL 转换类.
org.jdom.adapters 包含 几种主要解析器的适配器类.
org.jdom.filter 包含 过滤文档节点的类.
org.jdom.input包下提供了如下两个类用于构建JDOM树.
DOMBuilder:将一份已有的W3C的Document对象转换为JDOM的Document.
SAXBuilder:工具类,可以将来自输入流,磁盘或指定URL所代表的XML文档转换为JDOM的Document.
org.jdom. Output包下提供三个输出工具类.
DOMOutputter 将内存中的JDOM树输出成W3C的DOM树.
SAXOutputter 将内存中的JDOM树输出到SAX2流中,用于出发SAX2事件监听器.
XMLOutputter 将内存中的JDOM树输出成XML文档.
org.jdom
常用API中只有Parent是接口.
Parent接口代表所有能包含子内容的节点.有连个实现类,Element类,和Document类.
Parent接口中常用方法:
List getContent() 返回当前元素所包含的所有子内容.
Int getContentSize() 返回该元素所包含的所有子内容的大小.
Iterator getDescendants() 获取该元素所包含的所有后代节点.
Document getDocument() 返回该元素所在的XML文档所对应的Document.
Parent getParent() 返回父元素.
Int indexOf() 返回指定子内容在当前元素的子内容列表中的索引.
List removeContent() 删除当前元素的指定子内容,并返回被删除的内容.
常用类
Document 代表XML文档.它不能是其他对象的内容.所以只是实现了Parent接口.
Content 所有JDOM对象的抽象父类.
Content的派生类:
Element XML 元素.
Text XML文档中的文本内容.
CDATA XML文档中的CDATA段.
DocType XML文档中的DOCTYPE声明.
ProcessingInstruction XML文档里的处理指令.
EntityRef XML文档中的实体引用.
Comment XML文档中的注释内容.
Attribute XML文档中的属性.属性是附属于某个元素的.所以Attribute单独的一个类.
创建XML文档
Document doc=new Document(); //创建文档.
Element eltRoot=new Element(“student”); //创建一个元素.
doc.setRootElement(eltRoot); //把元素作为文档的根元素.
或者在构造Document时,传入根元素
Element eltRoot=new Element(“student”); //创建一个元素.
Document doc=new Document(eltRoot); //创建文档,且把元素作为文档的根元素.
添加属性
eltRoot.setAttribute(“sn”,”10”);
添加子元素并设置元素内容
Element eltName=new Element(“name”) //创建元素,子元素.
Element eltAge=new Element(“age”) //创建元素,子元素.
eltName.setText(“剑圣”); //给元素添加内容.
eltAge.setText(“128”); //给元素添加内容.
eltRoot.addContent(eltName); //给元素添加子元素
eltRoot.addContent(eltAge); //给元素添加子元素
输出文档
org.jdom. Output包下
DOMOutputter 将内存中的JDOM树输出成W3C的DOM树.
SAXOutputter 将内存中的JDOM树输出到SAX2流,用于出发SAX2事件监听器.
XMLOutputter 将内存中的JDOM树输出为字节流.
例如,
XMLOutputter xmlOut=new XMLOutputter();
xmlOut.output(doc,System.out);
输出可以选择输出到文件或套接字流,或控制台输出流中.
xmlOut.output(doc,new FileOutputStream(“student.xml”));
格式化输出
Format类,用于设置输出文档的字符编码,设置行分隔符,以及设置缩进字符串.
public static Format getCompactFormat()
采用紧凑格式.即对文档中的空白进行规范化,使用UTF-8编码,不展开空元素,包含声明和编码,以及使用默认的实体转义策略.
public static Format getRowFormat()
采用原始格式.即对文档中的空白保持不变,使用UTF-8编码,不展开空元素,包含声明和编码, 以及使用默认的实体转义策略.
public static Format getPrettyFormat()
采用美化的格式.即使用两个空格作为缩进来输出文档, 不展开空元素,包含声明和编码,以及使用默认的实体转义策略.
下面采用美化的格式输出文档至控制台输出流,设置字符编码为GB2312.
Format fmt=Format.getPrettyFormat(); //得到格式对象.
fmt.setEncoding(“GB2312”); //设置格式对象的编码
fmt.setIndent(“ ”); //设置格式对象的缩进
xmlOut.setFormat(fmt); //输出对象设置格式(即把格式对象绑定到输出对象)
xmlOut.output(doc,System.out); //输出对象把文档对象传至输出流.
构建JDOM树
org.jdom.input包下提供了如下两个类用于构建JDOM树.
DOMBuilder:将已有的W3C DOM的Document对象或Element对象转换为JDOM的对象.
SAXBuilder: 使用一个第三方的SAX解析器,将不同输入源(输入流,磁盘或指定URL所代表的XML文档)转换为JDOM的Document.
以DOMBuilder类构造JDOM文档对象.
DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); //构建W3C DOM解析器工厂
DocumentBuilder db= dbf.newDocumentBuilder(); //构建解析器
File file=new File(“students.xml”); //引用文件
org.w3c.dom.Document document=db.parse(file); //得到W3C DOM document
DOMBuilder domBuilder=new DOMBuilder(); //创建JDOM的domBuilder
org.jdom.Document doc=domBuilder.builder(document); // W3C DOM document
转为 JDOM document.
访问根元素
使用Document类的getRootElement()方法,用于返回文档的根元素.
Element root=doc.getRootElement();
访问子元素
在Element类中定义了获取子元素的方法.
要得到某个元素的所有子元素.
java.util.List childrenList=element.getChildren(); //
要得到某个元素的指定名称的子元素
java.util.List childrenList=element.getChildren(“student”); //
要得到指定名称元素的第一个子元素
java.util.List childrenList=element.getChild (“student”); //
要删除某个元素的指定名称的所有子元素
element.removeChildren (“student”); //
要删除某个元素的指定名称的第一个元素
element. removeChildren (“student”); //
访问属性
在Element类中定义了访问元素属性的方法.
要得到某元素的所有属性
java.util.List attrList=element.getAttributes(); //
要得到指定的属性
Attribute attr=element.getAttribute(“sn”); //
要得到指定的属性的值
String attrValue=element.getAttributeValue(“sn”); //
要删除指定的属性
element.removeAttribute (“sn”); //
验证XML文档
使用DTD验证
在构造SAXBuilder对象时传入参数true.
使用Scheme验证
发表评论
-
Java NIO 基础学习
2013-09-21 16:24 938零、概述 1、传统IO的问题 2、非阻塞IO ... -
try finally 与 return
2013-09-02 16:11 9601、try、catch、finally语句中,在如果try ... -
Java的传值
2013-07-21 13:06 950这个问题一直以来都有误区。本质原因是那些写书的人,喜欢用“传 ... -
Java多线程——synchronized的问题
2013-06-14 15:51 1042一直以来都存在这样的问题: 多线程操作同一对象。该对象有 ... -
Java与操作系统的交互
2013-05-05 22:08 1706System类 System表示Java程序的运行平台。S ... -
java枚举
2013-04-06 15:59 900枚举,之前一直忽视了其存在。其实挺有用。 java5 ... -
Java语法细节
2013-02-03 11:19 925final关键字 final修饰的量以视为常量,当fin ... -
Java Socket 学习笔记
2013-01-29 23:42 957Socket:英文中的意思是插座。 两个Java应用程序 ... -
Java 线程同步
2013-01-27 23:17 1034理解Java线程状态: ... -
Java 与 C# 计算性能比较
2012-11-02 14:51 1160程序:寻找2亿以内的最大素数,从2开始寻找。 Java程序: ... -
Java数组的操作
2012-10-12 11:23 847一、复制数组 java.lang.System类中的静态 ... -
Java容器
2012-10-09 00:33 883Java集合类就像容器。把多个对象的引用放进容器中。即集合类主 ... -
Java日期处理
2013-01-31 23:05 859不得不吐槽一下Java的日期处理。太不爽了。 基本 ... -
java:Excel
2012-09-27 09:06 1123jxl操作excel 在开源世界中,有两套比较有影响的API ... -
关于分页显示的页码
2012-08-21 13:30 1268分页显示数据时常常需要将页码列出来。 此处的Page类主要关 ... -
dom4j
2012-07-07 17:21 2241dom4j 与JDOM一样,也是一种用于解析XML文档 ... -
线程优先级 && 后台线程 && join线程
2012-07-02 23:08 46线程优先级 每个线 ... -
Java线程的运行状态(线程的生命周期)
2012-07-02 22:56 900新建和就绪 ... -
Java多线程 Thread类 和 Runnable接口
2012-07-02 22:13 1519Java的线程,即一个Thre ... -
Java反射
2012-07-02 20:22 848编译时类型和运行时类型 Java程序中的对象在运行时都会出现 ...
相关推荐
Java开发中的JDOM是一个专门针对XML处理的开源库,它以Java为中心,提供了一种简洁、高效的API来解析、创建、修改和序列化XML文档。JDOM的设计目标是结合SAX和DOM的优点,同时减少它们的不足,使得XML处理更加直观和...
### JDOM基础概念 1. **Document对象**:在JDOM中,XML文档被表示为`org.jdom.Document`对象。这个对象包含了整个XML文档的结构,包括根元素(root element)和其他所有元素。 2. **Element对象**:`org.jdom....
**一、JDOM基础概念** 1. **Document对象**:在JDOM中,XML文档被表示为`org.jdom.Document`对象。这个对象包含了整个XML文档的根元素和相关的元数据。 2. **Element对象**:XML文档中的每个元素对应一个`org.jdom...
**JDOM基础** JDOM的主要目标是提供一个完全基于Java的XML解决方案,使得XML文档可以被高效地映射到Java对象上。通过JDOM,开发者可以使用Java API来处理XML文档,无需了解底层的SAX或DOM解析器的工作原理。 **...
DOM4J是在JDOM基础上发展起来的,它扩展了XML文档的表示,包括XPath支持、XML Schema支持以及事件驱动的处理方式,适用于大型或流式文档。DOM4J通过接口和抽象类提供了更高的灵活性,但API相对复杂。它支持DOM4J API...
1. **基础概念**:了解XML的基础知识,包括元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)等基本组成单元,以及它们在JDOM中的对应类。 2. **Element类**:JDOM中的主要类,代表XML文档中的...
1. `org.jdom`:包含所有与XML文档元素相关的Java类,如Attribute、Element、Comment、Document、Text等,这些都是构建和操作XML文档的基础。 2. `org.jdom.adapters`:提供了与DOM适配的类,使得JDOM可以与基于DOM...
**XML基础** XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。XML文档结构包含元素(Element)、属性(Attribute)、文本(Text)等组件。每个XML文档...
在Android开发中,AndroidManifest.xml文件是至关重要的,因为它包含了应用程序的基础配置信息,如应用名称、权限、活动、服务、广播接收器等。默认情况下,AndroidManifest.xml中的节点数据是连续的,不支持直接...
**XML基础** XML(Extensible Markup Language)是一种标记语言,它允许我们以结构化的方式存储和传输数据。XML文档由元素、属性、文本节点等组成,具有自解释性,使得人类和机器都能理解其中的内容。JDOM就是用来...
7. **lib**目录:可能包含了JDOM运行所需的其他依赖库,例如SAX和DOM等XML解析器的基础库。 JDOM的核心优势在于它的设计理念:完全基于Java,因此在性能和内存使用上都优化得相当好。它提供了一种面向对象的方式来...
**XML的基础知识** XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换、配置文件和文档存储。XML文档由元素、属性、文本内容和处理指令等组成。它的主要特点包括: 1. **自描述性**:每个XML...
DOM4J是在JDOM基础上发展起来的,它不仅提供了XML文档表示,还增加了XPath支持、XML Schema支持和事件处理功能,特别适合处理复杂的XML操作。DOM4J允许选择不同的构建文档表示的方法,包括DOM和SAX,这使其在灵活性...
**概述**:DOM4J是另一个针对Java的高性能XML处理库,它是在JDOM基础上发展而来的,提供了更多的功能和优化。 **特点**: - **智能分支**:DOM4J起源于JDOM的一个分支,但在此基础上进行了大量的改进和发展。 - **...
4. **文档操作**:dom4j可以创建新的XML文档,或者在现有文档基础上添加、删除和修改元素、属性。 5. **序列化**:能够将XML文档对象序列化为字符串或输出到文件,实现XML文档的保存和传输。 **JDOM** JDOM是另一...
JDOM 1.1是这个库的一个重要版本,它在早期版本的基础上进行了一系列的改进和增强,以满足开发者对XML处理的更高需求。 1. **XML解析与构建** JDOM 1.1提供了两种主要的方式来处理XML:SAX(Simple API for XML)...
JDOM 2.0.4是该库的一个版本,它在前一版本的基础上进行了改进和优化,以提供更好的稳定性和性能。 1. **JDOM的基本结构** JDOM的核心类包括`Element`,`Attribute`,`Document`和`Namespace`等。`Element`表示XML...
这些基础对于理解如何使用JDOM至关重要,因为它们定义了XML文档的规则和约束。此外,教程还会涉及SAX和DOM解析器,这是JDOM工作原理的基础。 在JavaOne大会上,JDOM的介绍可能涉及了JDOM的最新版本特性、性能优化、...
**XML基础** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。它的结构清晰,易于阅读和编写,同时也便于机器解析和生成。XML文档由元素、属性、文本...
### 利用 JDOM 操作 XML 文档 #### 一、引言 JDOM(Java Document Object Model)是...通过这些基础操作,您可以轻松地使用 Java 来管理和操作 XML 数据。JDOM 的简洁性和易用性使其成为处理 XML 数据的理想选择之一。