-
概念
Extensible Markup Language 可扩展标记语言 * 可扩展:标签都是自定义的.<user> <student> * 功能 * 存储数据 1. 配置文件 2. 在网络中传输 * xml与HTML的却别 1. xml标签都是自定义的,html标签是预定义的。 2. xml的语法严格,html语法松散。 3. xml是存储数据的,html是展示数据的。
-
语法
* 基本语法 1. xml文档的后缀名 .xml 2. xml第一行必须定义为文档声明 3. xml文档中有且仅有一个根标签 4. 属性值必须使用引号(单双都可)引起来 5. 标签必须正确关闭 6. xml标签名称区分大小写 * 快速入门 <?xml version='1.0' ?> <users> <user id='1'> <name>zhangsan</name> <age>20</age> <gender>male</gender> </user> </users> *组成部分 1. 文档声明 1. 格式<?xml 属性列表 ?> 2. 属性列表 * version: 版本号,必须的属性 * encoding: 编码的方式。告知解析引擎当前文档使用的字符集,默认值: ISO-8859-1 * standalone;是否独立 * 取值: * yes: 不依赖其他文件 * no : 依赖其他文件 2.指令(了解):结合css的 * <?xml-stylesheet type="text/css" href="demo.css" ?? 3.标签: 标签名称自定义的 * 规则: * 名称可以包含字母、数字以及其他的字符 * 名称不能以数字或者标点符号开始 * 名称不能以字母 xml(或者XML、Xml等等)开始 * 名称不能包含空格 4.属性 id属性值唯一 5. 文本: * CDATA区:在该区域中的数据会被原样展示 * 格式: <![CDATA[]]>
-
约束
规定xml文档的书写规则 * 分类 1. DTD: 一种简单的约束技术 2. Schema: 一种复杂的约束技术 * DTD * 引入dtd文档到xml文档中 * 内部dtd: 将约束规则定义在xml文档中 * 外部dtd: 将约束的规则定义在外部的dtd文件中 * 本地: <!DOCTYPE 根标签名 SYSTEM "dtd文件的位置"> * 网络: <!DCOTYPE 根标签名 PUBLIC "dtd文件的名字" "dtd文件的位置URL"> * Schema: * 引入: 1.填写xml文档的根元素 2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3.引入xsd文件命名空间. xsi:schemaLocation="http://www.itrunner.cn/xml student.xsd" 4.为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itrunner.cn/xml" <students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.itrunner.cn/xml" xsi:schemaLocation="http://www.itrunner.cn/xml student.xsd">
4.解析
* 操作xml文档,将文档中的数据读取到内存中
* 操作xml文档
1. 解析(读取):将文档中的数据读取到内存中
2. 写入 : 将内存中数据保存到xml文档中。持久化的存储。
* 解析xml的方式:
1. DOM: 将标记语言文档一次性加载进内存,在内存中形成一颗dom树
* 优点: 操作方便,可以对文档进行CRUD的所有操作
* 缺点: 占内存
2. SAX: 逐行读取,基于事件驱动的。
* 优点: 不占内存
* 缺点: 只能读取,不能增删改
* xml常见的解析器
1. JAXP: sun公司提供的解析器,支持dom和sax两种思想
2. DOM4j:一款非常优秀的解析器
3.Jsoup: jsoup是一款Java的HTML解析器,可以直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可以通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。
4. PULL: Android操作系统的内置解析器,sax方式
网友评论