1、XML
1.1XML简介
①XML全称 eXtensible Markup Language 可扩展标记语言
是一种标记语言。
②XML是一种非常灵活的语言,没有固定的标签,所有的标签都可以自定义
③通常,xml被用于信息的记录和传递。因此,xml经常被用于充当配置文件
1.2XML格式
声名信息<?xml version="1.0"encoding="utf-8"?>
xml有且只有一个根元素
xml大小写敏感
标签是成对的,
属性值要用双引号
<books>
<book id="bo1">
<name>java</name>
<author>张三</author>
<price>18</price>
</book>
</books>
2、DTD
2.1DTD简介
(1)DTD全称 Document Type Definition 文档类型定义
(2) 用于约束xml格式,保证xml是一个有效的格式
(3)dtd分为两种,内部DTD,外部DTD。
2.2DTD使用
(1)内部DTD的定义
<!DOCTYPE 根元素 [元素声名]>
(2)元素声名语法
<!ELEMENT 元素名 (子元素,,,,,)>
(3)数量词
+:出现一次或多次
?:出现0次或一次
*:出现任意次
(4)属性声名语法
①属性名:CDATA 表示字符数据(character data)
②默认值:
#REQUIRED 表示必须出现
#IMPLIED 不是必须的
(5)外部DTD的定义
在外部创建独立的DTD文件,写入DTD约束,然后在文件中导入
<!DOCTYPE 根元素 SYSTEM "文件名">
(6)示例
<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE scores[
<!ELEMENT scores (student+)>
<!ELEMENT student (name ,course,score)>
<!ATTLIST student id CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!-- 不允许内部出现标签 -->
]>
<scores>
<student id="1">
<name>王同</name>
<course>java</course>
<score>89</score>
</student>
<student id="2">
<name>李佳</name>
<course>sql</course>
<score>58</score>
</student>
</scores>
3、XML的解析
对xml的增删改查操作
3.1 DOM
官方提供的解析技术,基于xml树解析
3.2 SAX
民间的解析方式,基于事件的解析
3.3 JDOM
第三方提供,开源免费的解析方式
3.4 DOMJ4
第三方提供,开源免费的解析方式,解析功能出色