XML:可扩展的标记语言 extensible Markup Language version=1.0
可扩展:所有标签都是自定义的
功能:
A.数据存储
B.数据传输
C.配置文件****
HTML与XML对比
1.HTML语法比较松散,XML语法标记严格
2.HTML用作页面展示,XML用于数据存储
3.HTML所有标签都是预定义,XML所有标签都是自定义的
w3c:万维网联盟
XML语法
文档声明
必须写在XML文档第一行
写法<?xml version=1.0 ?>
属性:
version:版本号 固定 1.0
encoding:指文档码表 默认编码 ISO-8859-1
standablone:指文档是否独立 yes or no
元素
XML文档中的标签
文档中必须有且只有一个根标签
元素要正确闭合
元素需要正确嵌套
元素要遵循:
元素区分大小写
不能以数字开头
文本
转义符 <
CDATA:里面数据原样显示
<![CDATA[数据内容]]>
属性
属性值必须用引号引起
注释
<!--注释内容-->
处理命令
<?xml stylesheet type="text/css" href="base.css"?>
XML的约束
XML的书写规范
1.dtd约束
dtd约束的分类
内部的dtd:xml文件内部定义了dtd约束
外部的dtd:在外部文件定义dtd约束
本地:<!DOCTYPE students SYSTEM "student.dtd">
网络:<!DOCTYPE students PUBLIC "命名空间" "student.dtd">
2.schema约束
导入xsd的约束文件
1.编写根标签
2.引入实例命名空间
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入名称空间
xsi:schemaLocation="http://www.XXX.cn/xml" "student.xsd"
4.引入默认的命名空间
XML解析
解析XML文件
如果XML文件作为配置文件:读取
如果XML文件作为传输文件:写 读
XML解析思想
DOM:将文档加载进内存,形成一颗dom树(document对象),将文档的各个组成部分封装成对象
优点:因为内存中形成dom树,可以对dom进行增删改成
缺点:dom非常占空间,解析速度非常慢
Document:文档
Element:元素
Text:文本
Attribute:属性
Comment:注释<!--内容-->
SAX解析思想
逐行读取,基于事件的解析方式
优点:不占内存,解析速度快
缺点:只能读取,不能回写
XML常用的解析器
JAXP:由sun公司提供的解析方式 支持DOM SAX
JDOM
DOM4j:dom for java 民间方式 支持DOM
1.导包
2.创建解析器
SAXReader reader=new SAXReader();
3.解析XML文件
Document document=reader.read(url);
XPath:专门用于查询处理
定义了一种规则
selectSingleNode();
selectNodes();
1.导包
2.创建解析器
SAXReader reader=new SAXReader();
3.解析XML文件
Document document=reader.read(url);
XPath:
nodename:选取此节点
/:从根节点选起
//:不考虑位置问题
..:选取当前节点父节点
@:选取属性
【@属性名】 属性过滤
【标签名】 子元素过滤