第四卷: XML解析器
JDOM
l DOM是一组独立于语言和平台的应用程序编程接口,描述如何访问和操纵存储在结构化XML文档中的信息
l DOM可以表示树状结构
l W3C为DOM提供一系列API,以供应用程序调用
l DOM API的核心接口
l 对结点的操作包括读取、添加、删除、替换和创建,用java实现这些操作的方法
l JDOM和dom4j
l JDOM简介及优势
l JDOM常用API
l JDOM包概览
l JDOM类说明
l 使用JDOM验证XML文档的有效性
l 使用JDOM解析XML文档
l 使用JDOM创建XML文档
l 使用JDOM修改XML文档
W3C的DOM规范既要考虑处理XML文档,又要考虑处理HTML文档,因此实际开发过程中使用DOM解析器来处理XML文档显得异常繁琐。在这样的背景下,有一帮人开始开发Java专业的XML API,希望更方便使用,这就是JDOM的由来。
但在JDOM开发到一半的时候,有一部分人产生了新的想法,这些想法又无法在JDOM中实现,于是他们干脆从JDOM项目组中分离出去,单独开发另一套Java专属的XML API,这就是dom4j。
JDOM和dom4j两套API有一个共同的目标:使用简单的、易理解的API来处理XML问题。比较来看,JDOM主要API以类为主,而dom4j主要API以接口为主。因此,dom4j比JDOM灵活。
JDOM常用API中只有一个Parent是接口,它代表所有能包含子内容的节点,有Document和Content两个实现类。该接口有以下常用方法:
l List getContent()方法:返回该元素包含的所有子内容;
l Int getContentSize()方法:返回所包含的所有子内容的大小;
l Iterator getDescendants()方法:获取所包含的所有后代节点;
l Document getDocument():返回所在的XML文档对应的Document;
l Parent getParent():返回父元素
l Int indexOf(Content child):返回指定子内容在当前元素的子内容列表中的索引;
l List removeContent()方法:删除当前元素的指定子内容,并返回被删除的内容。
JDOM的类 |
说明 |
Document |
代表XML文档对象本身,就是XML文档根 |
Content |
是所有JDOM对象的抽象父类 |
Element |
代表XML元素 |
Text |
代表XML文档中的文本内容 |
CDATA |
代表XML文档中的CDATA节 |
DocType |
代表XML文档中的DOCTYPE声明 |
ProcessingInstruction |
代表XML文档中的处理指令 |
EntityRef |
代表XML文档中的实体引用 |
Attribute |
代表XML文档中的属性 |
Comment |
代表XML文档中的注释内容 |
下载和安装JDOM
JDOM包概览
JDOM是由以下几个包组成的
org.jdom包含了所有的xml文档要素的java类
org.jdom.adapters包含了与dom适配的java类
org.jdom.filter包含了xml文档的过滤器类
org.jdom.input包含了读取xml文档的类
org.jdom.output包含了写入xml文档的类
org.jdom.transform包含了将jdomxml文档接口转 换为其他xml文档接口
org.jdom.xpath包含了对xml文档xpath操作的类
JDOM类说明
1. org.JDOM这个包里的类是你解析xml文件后所要用到的所有数据类型。
Attribute
CDATA
Coment
DocType
Document
Element
EntityRef
Namespace
ProscessingInstruction
Text
2. org.JDOM.transform在涉及xslt格式转换时应使用下面的2个类
JDOMSource
JDOMResult
3. org.JDOM.input输入类,一般用于文档的创建工作
SAXBuilder
DOMBuilder
ResultSetBuilder
4. org.JDOM.output输出类,用于文档转换输出
XMLOutputter
SAXOutputter
DomOutputter
JTreeOutputter
使用JDOM访问XML的示例
输出结果
获得studentinfo.xml文件。
输出结果
程序输出信息如下:
代码分析
总结
介绍了JDOM解析器的知识
重点介绍常用的API、主要的包概览、类说明
如果使用JDOM验证XML文档有效性,解析、创建、修改XML文档等
第二次作业
第十三周小课上交打印稿