XML一页通
- XML内容
- 概念
可扩展标记语言(Extensible Markup Language)
- 可扩展:标签都是自定义的
- Xml与html的区别:都产自W3C(万维网联盟)
- 语法
- 第一行必须定义为文档申明。
- 文档中有且仅有一个根标签
- 属性必须用引号(单双都可以)引起来
- 标签必须正确关闭
- Xml的标签名称区分大小写
- 组成部分
- 文档申明
1.格式:<? 属性列表 ?>
2.属性列表:
* version:版本号,必须属性。主流1.0,1.1不向下兼容
* encoding:编码方式
*standalone:是否独立(基本不用, 而且现在也无效)
* yes:不依赖其它文件
* no:依赖其它文件
- 指令(了解):结合CSS,和html相同
- 标签:
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护
- 属性:id属性唯一值
- 文本:
CDATA区:原样展示区内容
<![CDATA[ 内容 ]]>
- 约束:规定XML文档的书写规则
- 作为框架的使用者(程序员):
- 能在XML中引入约束文档
- 能够简单读懂约束文档
- 分类:
- DTD:一种简单的约束技术(不能对值进行约束)
- Schema:一种复杂的约束技术
- DTD:
- 引入DTD文档到XML文档中
- 内部dtd:将约束规则定义在XML文档中
- 外部dtd:将约束规则定义在外部的dtd文件中
- 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件位置">
- 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名(随便)" "dtd文件位置URL"
- Schema:
- 引入:
- 填写XML文档的根元素
- 引入xsi前缀, xmlns:xsi="w3c固定格式"
- 引入xsd文件命名空间,xsi:schemaLocation="命名空间 文档位置"
- 为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itcast.cn/xml"
- 解析:操作xml文档,将文档中的数据读取到内存中
- 操作xml文档
- 解析(读取):将文档数据读取到内存中
- 写入:将内存中的数据保存到xml文档中。持久化存储。
- 解析xml的方式:
- DOM:将标记语言文档一次性加载进内存,在内存中形成DOM树。适用于服务器
- 优点:操作方便,可以对文档进行CRUD操作
- 缺点:占内存
- SAX:逐行读取,基于事件驱动。适用于移动设备、智能硬件。
- 优点:不占内存
- 缺点:只能读取,不能增删改。
- Xml常见的解析器:
- JAXP:SUN,支持dom、sax两种思想,速度慢,操作复杂
- DOM4J:非常优秀
- Jsoup:HTML、CSS、XML通用解析器
- PULL:Android系统内置的解析器
- Jsoup快速入门:
- 步骤:
- 导入jar包
- 获取Document对象
- 获取对应的标签Element对象
- 获取数据
- 代码:
- 获取xml路径
- String path = JsoupDemo1.class.getClassLoader().getResource('student.xml').getpath();
- 解析xml文档,加载进内存,获取dom树—>Document
- Document document = Jsoup.parse(new File(path), 'utf-8');
- 获取元素对象Element
- Elements elements = document.getElementsByTag("name");
- 获取数据
- String name = element.text();
- Jsoup对象的使用:
- Jsoup:工具类, 可以解析html或xml文档,返回Document
- Document:文档对象,代表内存中的DOM树
- Elements:元素Element合集
posted on 2019-10-28 20:06 剑飞花(373500710) 阅读(143) 评论(0) 编辑 收藏 举报