XML:eXtensible Markup Language 可扩展标记语言 version=“1.0”
- 可扩展:所有的标签都是自定义的
- 功能:
- 数据存储
- 配置文件
- 数据传输
- html和xml区别:
- html语法松散,xml语法严格
- html做页面展示,xml做数据存储
- html所有标签都是预定义的,xml所有标签都是自定义的
- W3C:world wide web consortium
- 语法:
- 文档声明:
- 必须写在xml文档的第一行
- 写法:<?xml version="1.0" ?>
- 属性:
- version:版本号 固定值 1.0
- encoding:指定文档的码表 默认值为iso-8859-1
- standalone:指定文档是否独立 yes或no
- 元素:xml文档中的标签
- 文档中必须有且只能有一个根元素
- 元素需要正确闭合
- 元素需要正确嵌套
- 元素名称要遵守:
- 元素名称区分大小写
- 数字不能开头
- 文本:
- 转义字符:
>
- CDATA: <![CDATA[数据内容]]> 原样显示数据
- 转义字符:
- 属性:
- 属性值必须用括号引起来 单双都可
- 注释:
<!-- -->
- 处理指令
- <?xml-stylesheet type="text/css" href="1.css"?>
- 使用 CSS 格式化 XML 不是常用的方法,更不能代表 XML 文档样式化的未来。W3C 推荐使用 XSLT。
- 文档声明:
- 书写规则:
- 分类:
- dtd:
- 内部dtd:在xml内部定义dtd
- 外部dtd:在外部文件中定义dtd
- 本地dtd文件:
- 网络dtd文件:
- schema:
- 导入xsd约束文档:
- 编写根标签
- 引入实例名称空间
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- 引入名称空间
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
- 引入默认的名称空间
- 导入xsd约束文档:
- dtd:
- 分类:
XML解析
- 解析xml可以做:
- 如果xml作为配置文件:读取
- 如果xml作为传输文件:写,读
- xml解析思想:
- DOM:将文档加载进内存,形成一颗dom树,将文档的各个组成封装为一些对象
- 优点:因为在内存中会形成dom树,可以对dom树进行增删改查
- 缺点:dom树非常占内存,解析速度慢
- SAX:逐行读取,基于事件驱动
- 优点:不占内存,速度快
- 缺点:只能读取,不能回写
- DOM:将文档加载进内存,形成一颗dom树,将文档的各个组成封装为一些对象
- xml常用的解析器:
- JAXP:sun公司提供的解析,支持dom和sax
- JDOM:
- DOM4J:dom for java民间方式,但是是事实方式。非常好 支持dom
- 导入jar包:dom4j.jar
- 创建解析器:SAXReader reader = new SAXReader();
- 解析xml 获得document对象 Document document = reader.read(url);
- XPATH:专门用于查询
- 定义了一种规则
- 使用的方法:
- selectStringNode();
- selectNodes();
- 使用步骤:
- 导包
- 创建解析器 SAXReader reader = new SAXReader();
- 解析xml 获得document对象 Document document = reader.read(url);