第四阶段-xml
一、xml简介
1.是可扩展标记语言,标签可以自己定义
2.xml主要功能是为了存储数据
3.xml是w3c组织发布的技术
二、xml的应用
1.不同的系统之间传输数据
2.用来表示生活中有关系的数据
3.经常用在文件配置
a.连接数据库
b.修改数据库
三、xml的语法
1.xml的文档声明
a.创建一个文件.xml
b.文档必须写在第一行第一列
c.属性
-version: xml的版本1.0(使用) 1.1
-encoding: xml编码 gbk utf-8 iso8859-1
-standalone: 是否需要依赖其他文件 yes/no
d.xml的中文乱码问题
四、xml的元素定义
1.xml中把空格和换行都当内容来解析
2.xml中标签的名称规则
a.xml代码区分大小写
b.xml的标签不能以数字和下划线开头
c.xml的标签不能以xml、XML、Xml等开头
d.xml的标签不能包含空格和冒号
五、dtd的三种引入方式
1.引入外部dtd的文件
<!DOCTYPE 根元素名称 SYSTEM "dtd路径">
2.使用内部的dtd文件
<!DOCTYPE 根元素名称[
<!ELEMENT person(name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
]>
3.使用外部的dtd文件
六、dtd定义元素
1.语法 <!ELEMENT 元素名 约束>
2.简单元素:没有子元素的元素
<!ELEMENT name (#PCDATA)>
a.(#PCDATA):约束name是字符串类型
b.EMPTY:元素为空
c.ANY:任意
3.复杂元素
<!ELEMENT person (name,age,sex,school)>
-子元素只能出现一次
a.<!ELEMENT person (子元素)>
+:表示一次或者多次
?:表示0次或者一次
*:表示0次或者多次
七、dtd定义属性
1.语法: <!ATTLIST 元素名称
属性名称 属性类型 属性约束
2.属性类型
a.CDATA 字符串
<!ATTLIST birthday
ID1 CDATA #REQUIRED>
b.枚举:表示只能在一定的范围内,而且只能每次出现一次
3.ID:值只能是字母或者下划线开头
4.属性的约束
a.#REQUIRED:属性必须存在
b.#IMPLIED:属性可有可无
c.#FIXED:表示一个固定值
八、xml的解析的简介
1.xml的解析方法:dom和sax
a.dox的解析
* 根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性和文本都封装成对象
* 缺点:如果文件过大,造成内存溢出
* 优点:方便实现增删改操作
b.sax方法解析
* 采用事件驱动,边读边解析
* 缺点:不能实现增删改操作
* 优点:不会造成溢出,方便实现查询操作
九、jaxp的api查看
1.jaxp解析器在jdk的javax.xml.parsers包里面
a.四个类:分别是针对dom和sax解析使用
b.dom
*DocumentBuilder:解析器
-是一个抽象类
-可以从DocumentBuilderFactory.newDocumentBuilder()方法获取
*DocumentBuilderFactory:解析器工厂
十、jaxp基本操作
1.查询节点
2.修改节点
3.删除节点
4.遍历节点
十二、sax操作方式
十三、dom4j基本操作
简介:dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。
dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,
它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,
可以在SourceForge上找到它。
1.查询xml
2.添加节点
3.修改
4.删除