- 浏览: 229985 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (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 859零、概述 1、传统IO的问题 2、非阻塞IO ... -
try finally 与 return
2013-09-02 16:11 9001、try、catch、finally语句中,在如果try ... -
Java的传值
2013-07-21 13:06 895这个问题一直以来都有误区。本质原因是那些写书的人,喜欢用“传 ... -
Java多线程——synchronized的问题
2013-06-14 15:51 996一直以来都存在这样的问题: 多线程操作同一对象。该对象有 ... -
Java与操作系统的交互
2013-05-05 22:08 1667System类 System表示Java程序的运行平台。S ... -
java枚举
2013-04-06 15:59 848枚举,之前一直忽视了其存在。其实挺有用。 java5 ... -
Java语法细节
2013-02-03 11:19 882final关键字 final修饰的量以视为常量,当fin ... -
Java Socket 学习笔记
2013-01-29 23:42 908Socket:英文中的意思是插座。 两个Java应用程序 ... -
Java 线程同步
2013-01-27 23:17 991理解Java线程状态: ... -
Java 与 C# 计算性能比较
2012-11-02 14:51 1098程序:寻找2亿以内的最大素数,从2开始寻找。 Java程序: ... -
Java数组的操作
2012-10-12 11:23 806一、复制数组 java.lang.System类中的静态 ... -
Java容器
2012-10-09 00:33 842Java集合类就像容器。把多个对象的引用放进容器中。即集合类主 ... -
Java日期处理
2013-01-31 23:05 811不得不吐槽一下Java的日期处理。太不爽了。 基本 ... -
java:Excel
2012-09-27 09:06 1091jxl操作excel 在开源世界中,有两套比较有影响的API ... -
关于分页显示的页码
2012-08-21 13:30 1214分页显示数据时常常需要将页码列出来。 此处的Page类主要关 ... -
dom4j
2012-07-07 17:21 2191dom4j 与JDOM一样,也是一种用于解析XML文档 ... -
线程优先级 && 后台线程 && join线程
2012-07-02 23:08 46线程优先级 每个线 ... -
Java线程的运行状态(线程的生命周期)
2012-07-02 22:56 859新建和就绪 ... -
Java多线程 Thread类 和 Runnable接口
2012-07-02 22:13 1477Java的线程,即一个Thre ... -
Java反射
2012-07-02 20:22 810编译时类型和运行时类型 Java程序中的对象在运行时都会出现 ...
相关推荐
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。
JDOM操作XML文件 这篇文章讲的不错~把JDOM的基本操作实例化了,不过由于当时的作者用的JDOM版本还比较陈旧,所以部分代码会编译出错!...所以,法老在原作者的基础上对程序做了修改!休正了编译出错以及中文乱码的问题
010304_XML解析 —— JDOM 010305_XML解析 —— DOM4J 010306_使用JavaScript操作DOM 010401_Tomcat服务器的安装及配置 020501_注释及Scriptlet 020502_page指令 020503_包含指令 020504_跳转指令 020505_实例操作:...
JDOM 和 DOM 在性能测试时表现不佳,在...它还是许多其它与 XML 相关的标准的基础,因为它正式获得 W3C 推荐,所以在某些类型的项目中可能也需要它。 SAX表现较好,这要依赖于它特定的解析方式。无疑,DOM4J是最好的。
本书主要分为五个部分。...本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
本书主要分为五个部分。...本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
包括以下几个Jar包: hibernate3.jar-核心...dom4j-1.6.1.jar-类似于jdom,用来读写XML文件的 javassist-3.4.GA.jar- Javassist 字节码解释器 jta-1.1.jar-标准的JTA API。 slf4j-api-1.5.2.jar slf4j-nop-1.5.2.jar
本书主要以XML为核心,深入地介绍了XML的... 本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
本书主要以XML为核心,深入地介绍了XML的各种...本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
本书主要以XML为核心,深入地介绍了XML的各种...本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
本书主要以XML为核心,深入地介绍了XML的各种...本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
它还是许多其它与XML相关的标准的基础,因为它正式获得W3C推荐(与基于非标准的Java模型相对),所以在某些类型的项目中可能也需要它(如在 JavaScript中使用DOM)。 3:SAX表现较好,这要依赖于它特定的解析方式...
JDOM解析实例 413 JAVA操纵XML 实例讲解 414 通过JAVA写数据到XML里面 415 内容总结 418 独立实践 418 第二十三章:HTML基础 419 学习目标 419 知识要点 420 HTML元素 420 标签属性 420 HTML基本标签 422 标题元素 ...
自定义xml,通过Jdom,对xml进行各种基础操作
《疯狂XML讲义》是疯狂Java体系丛书之一,学习《疯狂XML讲义》无须任何XMI,基础,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。
dom4j 目录的介绍: 1)docs 是文档目录 2)如何查 Dom4j 的文档 3)Dom4j 快速入门 2)lib 目录 ...第三方的解析: jdom 在 dom 基础上进行了封装、 dom4j 又对 jdom 进行了封装。 pull 主要用在 And