XML
xml 与 html
- xml标签都是自定义的,html标签是预定义。
- xml的语法严格,html语法松散
- xml是存储数据的,html是展示数据
基本语法
- xml文档的后缀名 .xml
- xml第一行必须定义为文档声明
- xml文档中有且仅有一个根标签
- 属性值必须使用引号(单双都可)引起来
- 标签必须正确关闭
- xml标签名称区分大小写
组成部分
文档声明
格式:
<?xml 属性列表 ?>
属性列表:
version:版本号,必须的属性
encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
standalone:是否独立
取值:
- yes:不依赖其他文件
- no:依赖其他文件
标签
规则:
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
属性属性
id属性值唯一
文本:
CDATA区:在该区域中的数据会被原样展示
- 格式:
<![CDATA[ 数据 ]]>
- 格式:
约束
stateDiagram-v2
用户 --> XML: 编写
软件 --> XML: 解析
用户 --> 约束文档: 阅读
约束文档 --> XML: 规定格式
软件 --> 约束文档: 编写
DTD
内部dtd:将约束规则定义在xml文档中
外部dtd:将约束的规则定义在外部的dtd文件中
- 本地:
<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
- 网络:
<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
- 本地:
Schema
解析
DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
- 优点:操作方便,可以对文档进行CRUD的所有操作
- 缺点:占内存
SAX:逐行读取,基于事件驱动的。
- 优点:不占内存。
- 缺点:只能读取,不能增删改
jsuop
- Jsoup:工具类,可以解析html或xml文档,返回Document
- parse
- Document:文档对象。代表内存中的dom树
- getElementByXX
- Element:元素对象
- getElementByXX
- Node:节点对象
快捷查询
- selector
- XPath