xml
1.什么是XML?
xml全称Extensible Markup Language (可扩展标记语言),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
2.xml的作用?
1、丰富文件(Rich Documents)-自定文件描述并使其更丰富;
2、属于文件为主的XML技术应用;
3、标记是用来定义一块数据应该如何呈现;
4、解释数据(Metadata)-描述其它文件或在线信息;
5、属于数据为主的XML技术应用;
6、标记是用来说明一块资料的意义;
7、组态档案(Configuration Files)-描述软件的组态参数。
3.xml的基本语法?
3.1文档声明:声明XML文档的类型(<?xml version="1.0" encoding="UTF-8"?>)
3.2标签:
a.文件有且仅有一个根标签,其他标签都必须封装在根标签中
b.非空标签必须由“开始标签”和“结束标签”组成,空标签没有“开始标签”和“结束标签”
c.XML全体标签必须形成树形,即标签不允许交叉。
d.命名规范:字母,数字等。
1.严格区分大小写。
2.不能以数字,下划线,XML等开头
3.不能包含空格。
4.名字中间不能包含。
3.3:一个标签可以有多个属性,同样可以有肯多子标签,根标签只能有一个,所有子标签必须写在根标签下。
4.注释:
a.格式:<!--注释内容-->
b.文档声明之前不能有注释
c.注释不能嵌套
代码实现xml类,可以含有dtd来约束他:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons SYSTEM "my.dtd">---------引入本地的dtd约束
<persons>------------跟标签
<person pid="G160628"> ---------根标签下的子标签
<pname>张三</pname>
<page>13</page>
</person>
<person pid="G160618">
<pname>李四</pname>
<page>13</page>
</person>
</persons>
写一个文档来约束另外一个文档用来约束XML文档的书写规范。
xml约束技术有两种格式:DTD Schema
DTD是什么?
Document Type Definition 文档类型定义
引入DTD文件:
本地:<!DOCTYPE 文档根节点 SYSTEM "dtd文件名">
公共:<!DOCTYPE 文档根节点 PUBLIC "dtd文件名" "DTD文件URL">
代码实现DTD约束类:
<!ELEMENT persons (person*)>
-----------约束跟标签(persons) 下的子标签只能右person *是可以有0次或多次
<!ELEMENT person (pname,page)> ----------------(persons)下的子标签 有两个(pname,page)
点是可以同时用,但是要按照他们的顺序写
<!ELEMENT pname (#PCDATA)> ----------------给他标签设置类型
<!ELEMENT page (#PCDATA)> ----------------给他标签设置类型
<!ATTLIST person pid ID #REQUIRED>
----------------给他属性设置类型名
和类型
6.dtd的基本语法:
6.1元素ELEMENT
格式:<!ELEMENT 元素名称 元素类型>
元素类型:EMPTY:表示定义空元素
ANY:表示元素内容为任意类型
也可以写元素内容
元素内容:1.用逗号隔开:表示内容的出现顺序必须与声明时一致
2.用 | 隔开:表示任选其一,即多个只能出现一个
出现次数:+:一次或多次
-:0次或1次
?:0次或多次
6.2属性ATTLIST
格式:<!ATTLIST 元素名 属性名1 属性值类型 设置说明>
属性值类型:CDATA 普通文本字符串
ENUMERATED 枚举
ID 唯一(不能以数字开头)
ENTITY
6.3实体ENTITY
格式:<!ENTITY >
为内容取名
类型:引用类型(XML引用)
格式:<!ENTITY 实体名称 “实体内容”>
引用:&实体名称
参数实体(DTD引用)
格式:<!ENTITY % 实体名称 “实体内容”>
引用:%实体名称
7.使用DOM解析XML:
他有三种用法:dom解析 ,dom4j , sax
dom解析的用法如下:
dom4j 的用法: