什么是XML
英文:Extensible Markup Language 可扩展的标记语言标记语言:整个文档由各种标记组成可扩展:所有的标签都是自定义的,可以随意扩展的。如: <abc></abc> <你好></你好> <凤姐></凤姐>XML作用
数据交换:不同的计算机语言之间,不同的操作系统之间进行数据交换。
配置文件:
在后期我们主要用于各种框架的配置文件。以前接触过的XML文件。c3p0-config.xml
<default-config> <!--数据库连接配置--> <!--驱动--> <property name="driverClass">com.mysql.jdbc.Driver</property> <!--连接字符串--> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day19</property> <!--用户名--> <property name="user">root</property> <!--密码--> <property name="password">root</property> <!--与连接池相关的配置--> <!--初始连接数--> <property name="initialPoolSize">5</property> <!--最大连接数--> <property name="maxPoolSize">10</property>编写xml文档,用于描述人员信息,person代表一个人员,id是人员的属性代表人员编号。人员信息包括age年龄、name姓名、sex性别信息。
效果:
1.选择当前项目鼠标右键新建
2.编写person.xml文件
<!--描述一个人--> <person id="1"> <name>张三</name> <age>18</age> <sex>男</sex> </person>3.通过浏览器解析XML的内容 注意:
安装了对应的浏览器才可以用的哦XML以后通过Java来进行解析,很少直接在浏览器上显示。XML由七种组成元素构成
文档声明标签/元素属性注释实体字符CDATA 字符数据区处理指令1.文档声明格式
<?xml version="1.0" encoding="UTF-8" ?>作用:
告诉别人这个是一个XML文件
注意:
以<?xml开头, 以 ?>结尾 必须放在第一行
声明的三种属性
文档声明的三个属性说明version指定XML文件使用的版本,取值是1.0encoding当前XML文件使用的编码(字符集) UTF-8/GBKstandalone指定当前这个XML文件是否是一个独立的文件,省略的,默认是独立文件。版本说明
W3C在1988年2月发布1.0版本,2004年2月又发布1.1版本,因为1.1版本不能向下兼容1.0版本,所以1.1没有人用。在2004年2月W3C又发布了1.0版本的第三版。我们学习的还是1.0版本。
元素
标签就是元素
元素语法格式
有主体内容的元素 <元素名>内容</元素名> <元素名>: 起始标签,开始标签 </元素名>: 结束标签 标签是成对出现的,中间放内容 没有主体内容的元素 <元素名></元素名> 没有主体内容的元素可以缩写 <元素名/>XML标签命名的要求
严格区分大小写: 不行标签名不能以数字开头,只能以字母或下划线开头,可以是中文: <9miao></9miao>不行标签名不能包含空格: </na me> 不行没有其他标签包裹的就是根标签
在一个xml文档中,只允许有一个根标签
<?xml version="1.0" encoding="UTF-8" ?> <persons> <!--描述一个人--> <person id="1"> <name>张三</name> <age>18</age> </person> <person id="2"> <name>李四</name> <age>19</age> </person> </persons>属性语法格式
<元素名 属性名="属性值">内容</元素名>注意
属性放在开始标签中属性值必须放在双引号或单引号中在一个标签中,属性可以有多个,但不能出现同名的属性注释语法格式
<!-- 注释 -->注释作用
给程序员看的
快捷键
注释: ctrl + /
嵌套
在XML中注释不能嵌套
为什么要用实体字符?
因为很多符号已经被文档结构所使用,所以在元素体或属性值中想使用这些符号就必须使用实体字符
语法: 规律:
所有的实体字符都是以 & 开头, 以;结尾
错误写法:
int age = 10; if (age < 18) { }正确写法:
int age = 10; if (age < 18) { }为什么要字符数据区
如果大量使用实体字符,会导致XML可读性降低。另一种解决方案:可以使用字符数据区包裹这些字符,只要在字符数据区中的内容,XML解析器会以纯文本进行解析。
CDATA字符数据区格式
<> <!> <![]> <![[]]> <![CDATA[]]> <![CDATA[ 内容 ]]>处理指令格式:
<? xxx ?> <?xml version="1.0" encoding="GBK"?> 文档声明就是一个处理指令 <?xml-stylesheet type="text/css" href="person.css"?> 导入外部css文件