xml相较于properties功能更为详细
1.功能
* 存储数据
1).配置文件
2).在网络中传输
2.XML和HTML的区别
1).xml标签是可以自定义,html标签预定义标签
2).xml语法严格,html语法松散
3).xml是存储数据的,html是展示数据
3.语法
1).xml文件的后缀名 .xml
2).xml文件的第一行必须定义为文件声明
3).xml文件有且只有一个根标签
4).属性值必须使用引号(单双都可以)引起来
5).标签必须正确关闭,也就是要有开头和结尾
6).xml标签名称区分大小写
4.xml的组成部分
组成:文档声明/指令/标签/属性/文本…
1).文档声明
* version: 版本号,必须写的属性
* encoding: 编码方式,告知解析引擎当前文档中使用的字符集
默认值:IS08859-1
* standalone: 是否独立 (了解)
*取值
* yes: 不依赖其他文件
* no: 依赖其他文件
2).指令(了解) 结合css使用
* <?xml-stylesheet type="text/css" href="a.css" ?>
3).标签:标签名是自定义的
XML 元素必须遵循以下命名规则:
* 名称可以含字母、数字以及其他的字符
* 名称不能以数字或者标点符号开始
* 名称不能以字符 “xml”(或者 XML、Xml)开始
* 名称不能包含空格
4).属性
以键值对方式进行存储
id属性用于标识唯一,使用时用(单/双引号)
5).文本
CDATA区:在这个区域内的数据会被原样显示出来
格式: <![CDATA[要显示的数据]]>
5.约束:规定xml文档的书写规则
分类:
dtd约束: 一种简单的约束
Schema约束: 一种复杂的约束
DTD约束:
引入dtd文档到xml文件中
内部dtd: 将约束定义在xml文档中
外部dtd: 将约束定义在外部的dtd文件中
6.解析xml文件
操作xml文件,将文件中的数据读取到内存中
1)操作xml文件
(1).解析(读取):将文件中的数据读取到内存的过程
(2).写入:将内存中的数据保存到xml文件中,可以做到持久化存储 -> 和IO的读写一样
2)解析xml方式:
(1)DOM:将标记文本中的内容一次性加载到内存中,会在内存中形成一个dom树
* 优点:操作方便,获取到数据之后可以针对数据进CRUD操作
* 缺点:占用内存空间大
(2)SAX:逐行读取,基于事件上进行操作
* 优点: 不占用内存空间
* 缺点: 只能做读取,不能做增删改操作
3)常见解析器:
Jsoup:支持dom 和 sax 两种思想的解析
DOM4j:仅支持dom思想的解析
PULL:仅支持sax思想的解析