00:00
今天整个一天的课就两个部分。一是学会创建,查没。插面文件。第二部分学会解析插描。就这两个大点,哎,两个大点哈,好,咱们就一点点来看。创建X ma之前,咱们得学习X ma是什么,这个首先咱们从最简单的说啊,之前我还是小白的时候,去面试的时候,面试的时候哈,面试官问我一个问题,说请你谈一谈X mail文件的理解。我当时脑子里边就一片空白,我说什么是叉,没东西,什么是叉?后来呢,我再拿手,拿笔,拿拿手在大腿上把这仨字母一写出来,我一看,哦,原来是XML文件。就是说读音不同吧,这个让人就会产生一些错觉是吧,所以首先第一点咱先甭管它是什么东西,读音咱们先正正实过来,有两种读法,一种就读它的仨字母。
01:02
三个字母的读音。啊,这正文了啊,三个字母,这个字母的读音,这是读法,要不然你就读成这种玩意叫叉ma是吧,这是叉。没。没有。就这两种读音啊,两种读音,XML文件,XML文件,还有是插面文件。OK吧,啊,这个一定要搞定啊,要不然。面试的这些问题,你脑袋一下瞬间短路就废了是吧?好,首先这是读音啊读音。啊,两种读法,两种读法。就是。好读音咱们纠正过来了之后啊,咱们就看一看,到底什么是查表文件啊,这三个字母啊,分别代表三个单词。第一个第一个它这个意思叫插面文件的意思叫扩展,可扩展啊,这个X其实是这个单词叫ex。
02:04
Teni ten。哎,这个东西,然后这个M。这个M。咱先不说这个M,先说后边这合起来这个。ML。跟咱们HT苗。是不是一样的。哎,一样的,所以咱们H前面后边这俩玩意怎么读来着。是啥意思来着?L肯定是language是吧?A language。好,M呢?标记标签吧,哎,标记标签叫做吗。Key。这样的连起来呢,咱们把这个单词再说一下这个单词的意思啊,第一个这个叫可扩展的。可扩展的是个形容词是吧。然后M呢是标记。或者说标签。标签最后一个是语言。
03:03
所以连起来就是可。扩展。标记语言。就是叫XML。这就是XML的一个定义。好,还是不太理解SML是什么鬼,咱接着往后说啊,先从概念上理解这三个单词,咱们再往下说。首先呢,咱们学习了跟ML相关的,就是咱们的HTML。对吧?HTML语言你也知道我学习HTML语言的目的是什么,就是学问,它能干啥?能干啥?有的同学说做网页OK,哎,不是。做网页没错,学而天名他屁用没有,只能做网页。啥别的啥事干不了就能做网页,那咱们再往。深了去说。做网页的目的是什么?你为什么要做成网页,你往跟上研究的话,其实啊,你想啊。
04:04
就淘宝那么多商品是吧,如果没有网页的话,他怎么把这些商品介绍给你啊。没有吧?哎,或者说咱们开一间超市。开一个超市的话,如果这个超市就这么个地是吧,如果连货架都没有的话,他怎么把商品卖给你啊。对吧,是不是得摆一个货架,苹果标上多少钱啊。对吧,告诉你产地是哪啊,山东烟台什么什么的。他是不是把这些就是。货物非常规范美观的呈现给客户啊。咱们才会去购买对吧,其实咱们做网页也是这个目的干嘛的。美丽的展现。数据。OK。网页的啊,网页的最终的目的就是这个。展示数据。只不过更加好看点,展力展示是吧?哎,这就是咱们做HTML的一个目的哈,OK,那咱们HTML知道它是干什么的了,跟HTML相关的这个ML也是他们。
05:08
他到底是干嘛的呢?它的作用是什么?先说了它是啥了,然后得学它,知道它的作用,咱们才知道怎么去用是吧,OK,它的作用呢,其实有挺多,这里边儿呢。我这样给大家写啊,画个小表格吧。它一共有三个作用。插面语言的作用。第一点叫做存,这个存的意思就是叫存数据。存数据,你看HTL的作用是不是叫展示数据啊啊,其实目的是不是编程啊,什么叫编程啊,叫数据结构与算法是吧?大学第一堂课应该学的是吧?所以数据结构是不是数据很重要啊。H面展示数据,而插面第一个大作用就是叫存。
06:01
保存数据。那保存数据的话,咱们之前都学过什么,做什么东西?首先Java IO流是不是可以把数据保存到普通的文件里?然后咱们又学了,我这个阶段的开始是不是又学了数据库啊,啊数据库啊。哎,两种方式都可以保存这个数据,那今天咱们学这插面,它为什么还要保存数据呢?是这样的,大家想啊。呃,咱们之前如果做这个,呃,大型的网络游戏是吧?哎,大型的网络游戏咱们可以把我的什么游戏的等级啦是吧,各种装备啦,各种名称啦,各种血量之类的这些参数,我都可以通过远程访问保存到他们公司的服务器的数据库里。对吧,哎,这是网络游戏啊,我前提是网络游戏带网络的。那么大家也玩过单机游戏玩过吗?斗地主,斗地主也联网了吗?这不斗地主不是跟别人玩吗?啊,也有单机的是吧?
07:05
啊,也有红警是吧,比如说就单机游戏,比如说超级玛丽。对吧,魂斗罗啊,这都是比较老的哈。暴露年龄了。就说这些单机游戏啊,单机游戏它没有互联网,那么比如说我一共是一到九关是通关,我今天打到第八关了。然后呢,我突然有点事儿,我是不是可以把这个游戏进行一个存档啊。保存一下节点,然后呢,明天回来,我从第八关再往后玩。那么现在就来了,当玩到第八关的时候,我这个游戏进度的各种参数是不是都改变了?比如说游戏等级是不是一到八了,对吧,我的游戏装备了是吧,我的这个名称啦,是不是都改变了,那这么多数据咱们应该保存在哪呢。首先第一点啊,单机没网络数据库不可能,肯定不可能啊,你觉得那么一个小小的一个小卡片,它能装的下Oracle数据库吗?
08:03
肯定是不能在数据库里是吧,然后其次呢,有人说那就保存一个文件里边呗,这是没问题的啊,但是保存在文件里边,它的IO流的读取速度会很慢,如果说读文件的速度很快的话,那么数据库就没用了吧。啊,所以读文件还是很慢的,也不可以采取。那么综上所述,这两点都不采取的话,只能搞第三种,第三种特殊的文件。哎,就是咱们的插面这个文件。哎,插面文件,它可以保存保存这个东西。记录下来啊,刚才我说的。手机中的。单机游戏是吧。单机游戏。现在手机里边是不是很多单机游戏啊?就是没网了也能玩吧。哎,没网了也能玩哈,啊,比如说这个里边的游戏中的。
09:02
等级、装备等等。这些数据。记录在哪儿?首先,数据库。数据库太大。手机装不下是吧。哎,手机装不下,而这个文件呢,普通文件。太慢。也不可以,也用也不行,所以我们采用。插面文件来保存软件中软件中的数据。哎,这是咱们插面这个东西的第一大特点,叫做保存数据。保存数据。这是咱们的插面的第一点。OK。所以说现在咱们都学习了什么保存数据的方式啊,第一普通文件,第二插面文件,第三数据库是吧。
10:01
哎,学了三种。啊,学了三种。OK,那咱们再来说第二点,第一点叫存数据是吧,第二点呢叫传。要快。这个传这个字是什么意思呢?就是传网络传输。网络传输。OK。那咱们。说的说的这个,比如说说说这个这个这个什么吃鸡啊,或者说CFCS这样网络游戏的一个数据怎么传递的是吧。他这个数据传递啊,一开始呢,咱们它使用的什么方式叫数据包。它有这么一个概念,叫数据包。对吧,比如说这个人物移动到什么什么地儿了,它的各种在三维空间的一个点坐标,对吧,它的枪支,它的弹药,它的血量,它所有所有的信息全部就是每一针。不是秒啊,哎,游戏里边叫一帧就是动,稍稍动一点就是一帧动画片吗。
11:01
哎,他会把每一帧的各种数据,各种数据封装成一个数据包。然后每一帧的时候,都会把这个数据包通过网络哗哗往服务器上传。就是哗哗的船呢,这个特别特别流量特别大。所以玩网络游戏对这个这个网络要求很高。对吧,你速度慢玩不了。玩不了,尤其是我们那个年代呀,只要一个网吧里边有两个人同时开视频聊天,这个网吧所有砍传奇的人都得骂街。谁他妈又开视频的是吧?哎,玩不了了,就哎,所以那个时候任何的网络游戏哈,对这个数据包的传输量哗哗的就是海量的海量的,你想啊,我稍微动1.1个包过去了。那你想你想一想,咱比如说打那个就是吃鸡哈。它是不是不停的在跑动啊。不停,你想想,不停的跑动,哗哗数据包得跑得花出多少来是吧?
12:02
这是一开始叫数据包啊,数据包的概念。数据包这个东西啊,拿到之后啊,解析起来其实挺困难,在网络游戏服务端啊,解析起来挺困难的,但是后来呢,这个后来后来咱们做这个应用系统,应用系统就比如说淘宝。那淘宝的话,比如说咱们浏览一件商品,然后下订单买99件,填写地址,然后把这个信息,是不是也得把这个信息提交到淘宝的服务器啊。然后呢,一开始的解决方案是写搞数据包。但是网络游戏没办法,只能是数据包是吧,而这个应用系统的话。他搞数据包这边解析来很费劲。而且你会发现他俩的流量是不一样的。一个游戏最多上线多少人呢?就吃鸡吧,咱们吃鸡的话,一局也就几十个人呗。我没玩过试试啊,一百二的。就算100多人。OK,淘宝浏览这商品,双11抢这个商品多少人?
13:03
得得得一级别的吧。啊,这一级别的,所以数据包支持不了这么大的流量咋办?只能写再行一种思路了。想另外一种思路,什么思路,哎,卡文件。又横刀夺爱了,他就一-一脚插进来了,说你们试试我这个东西,结果是,哎,挺好使啊,比之前数据包好使。所以现在就是这样的,就是量级一旦上来啊,就会采取插面文件传输,各种什么什么订单地址啦,是吧,这种数据如果是网络游戏的话,因为它这个数据包。哎,他这个数据包里边装了什么什么,还有二进制的东西,所以呢,网络游戏还是用包的形式。咱们大型的应用网络用的是叉L。OK,所以这个传指的是什么呀?叫做网络上传递数据。这是第二点传,哎传。
14:01
还有第三点叫做。配置文件。哎,插面文件不仅能存数据,还能传数据,最终呢,它还可以当成配置文件用。之前咱们学过一种配置文件叫。没办法,Practice是吧,哎,前面写的。写成格式啊。轻点practice是吧?而在咱们这个以后学习的各大框架技术中,使用配置文件的文件这个格式啊,用的比如说十个配置文件,一个practice,九个看没有。所以插面还可以做成。星点。还没?要配置文件的作用,比如说咱们再次这回再回忆回忆一下,咱们再学习数据库,数据库连接池的时候。连接池的时候,我记得咱们对这个连接池想要扩展的话,有一篇小说,咱们以后再说哈。
15:05
这篇。Second。这边就是一个插面文件看到了吧。查没文件。他会把数据库的相关信息。连接池的相关参数配置到这个文件里。这个文件里。哎,他会把这个东西放这里,然后具体这里边儿怎么写的,先不着急啊,OK,这是这个插面文件啊,它还可以作为配置文件。这样的话呢,咱们把这个插面文件介绍给大家了,它是什么?捋一遍啊,而且表展示数据插面文件存传配置文件撒作用。他俩的写法啊,很像啊,他俩的写法非常非常像。说一下插面文件的特点。第一点。叫做平台无关性。
16:04
平台无关性一说到这点的话,想起什么了?想起Java这个语言,它的一大特色是不是叫跨平台啊?哎,这个插面文件也有这样的特色,平台无关性,就是说我写一个插面文件写完了,不管你是Windows也好,不管你是Linux也好。全都一样的,全都是通用的,通用的。而类似于啥呀,英文学好了,不管你到美国也好,加拿大也好。都是使用英文的是吧。哎,就是这意思啊。它是一门独立的语言啊,独立的语言。OK,这是第一点,平台无关性。第二点,第二点百分之九十的语言都支持他,没有。就比如说什么Java了是吧,C了,Python了。GS了,哎,所有的语言都支持他们,我这说了百分之九十九十是吧,剩下百分之是啥呢?
17:05
不支持的。10%。圆。那是为什么呢?因为这些语言发布的时候。他们还没。还没出世呢。哎,不支持的10%里边,也就是说只要你在X mail这个语言之后发布的语言全部都支持,所以也就说明插面这个东西有多重要了,是吧,他要不重要呢?为什么所有语言都支持他呀,第三点。他们具有。自我描述性。啥意思,就是内容自定义啊。内容自定义。马上就知道什么叫内容自定义了,马上就知道了,好。这点我先暂时先不解释啊,一会儿就知道了。
18:00
特点呢?就这三个特点,然后咱们就开始说插妙的语法规则。白话这么多,咱们得创建它是吧,创建它之前先说语法规则第一点,差面文件必须。有根元素。必须有根元素,啥意思呢?比如说咱们做一个网页,呃,这篇代码中啊,这篇代码中有这么一个概念,就是说你会发现这边代码里边,这里边汪汪所有的内容全部都在HTML标签里边,看到了吗?对吧,是不是都在这个HL这个标签里边。而且你会发现,而天苗这个标签,它是作为第一个级别中第一个级别,而且A天苗标志是不是只存在一次啊。比如说这个Li,你看我出现了多少次是吧,Ul是不是也可以出现多次啊。但是咱们的HTML。只存在一次,而且它是最顶级的那个标签。
19:04
最顶级的那个标签,所以这个A天苗标签咱们称之为叫。根元素插面文件中它是必须有根元素的,OK,咱们第二点呢,暂时咱们先不说直接创建了啊。建一个项目。加尔项目,你看十加va是吧,还有咱们这个叫啥呢,这叫测test。插没使用Java代码,怎么创建一个插面文件呢?你就想我怎么创建的一个practice文件,还记得否?在S2C右键。用一个feel是吧,用一个fail,哎,这个不需要new fail啊,你点一下other。Other。在这里边呢,你就可以直接搜索叉lil看到了吗?这写的是不是xm few啊OK,就它啊选择它。然后下一步,然后这个名啊,随便改一个,我就要测试一行吧,PASS1完成。
20:06
首先创建完成啊,它会进入这种叫designer这种模式。这里边儿写代码特别不方便啊,我也非常不习惯选这个。South是吧,点S在这呢。他首先出现了第一行代码,这行代码叫文档声明,跟咱们HTML一样,它是不是也有个文档声明,然后才写的代码啊。它这个里边也是它自自带一个文档声明,然后在下边开始写代码。这个根元素的意思,你必须就是一棵大树吗?你想啊,这个大树不管上面长了多少个分枝,那它树干是不是只能有一个?咱们也是啊,不管你这里边写内容多多少,咱们只能有一个根元素,比如说咱们做一个什么样的标签呢。比如说就是咱们班,咱们一个班级吧,一个班级是吧。呃,根元素使标丝。
21:04
扩展。OK,所有的文件,所有代码都往这里边写。这是根元素的意思。根元素的只能有一个啊,只能有一个。好,咱们来看,边写边边说这个语法啊,第二点语法规则。X ma元素或者说元素,或者说叫标签啊。标签。必须。有开闭。有。和。必有和啥意思呢?就是结束标签是吧。我记得咱们在讲H5的时候。我接着说,咱们比如说写个P标签。是不是可以不写结尾啊?不写结尾不好使,给你报错。插面里边给你报错啊,但是如果说你把这个结尾给写上。
22:01
还报错吗?不报错了,这个是个这个什么呀,这是。这个不是错误啊,这个不是错误啊,只是一个简单的警告啊,记住了吧,必须得有闭合啊,不闭合报错。不,不集合报错。这是咱们的第二点。第三点。参文件元素对大小写敏感。试一下哈。就是前面小P后边闭合嘛,闭上呗。不行吧?哎,Java不是Java去了A天里边是随便吧,这可不行啊,这可不行。大小写敏感。OK。第四点。擦面标签。元素吧。必须正确的。嵌套。
23:00
哎,嵌套这个层级必须要正,必须正视起来啊,啥意思呢,大家看。选择题。那就瞎写的吧。啊先咱们就先写第二位吧。闭合了吧,然后里边写个P。这没问题吧,就是一个div里边写的P是吧,但是你要这么写的话。乱套了是吧。哎,他俩这个层级就整乱了,所以这样不行。最后一点他们。元素。的属性必须加引号。必须加引号,啥意思嘞,这呢。啊,留个div啊,什么叫标签的属性,是不是在开始标签里边这个了。比如说写个宽度啊,IDTH等于。100。这没问题吧,双引号去了。
24:01
报错。OK,报错。必须加引号,但是这个引号刚才我双引是没问题吧,单引行不行呢?行不行?没问题,所以我这加括号的意思就是单引双引都可是吧。都可以。就这五项基本的语法规则。不难理解,注意编写就好了,其实咱们使用eclipse,只要你写错了,他是不是给你报错了?啊,这是为什么咱们要使1CLS啊,啊,如果使用咱们h builder,它是不给你显示,它不给你报错,比较这点不好,所以这块使用它。好了,那咱们就开始真正的创建一个学生的插面文件,保存学生记录哈。咱就说咱们班级啊。还有一点是什么意思呢?咱们就来说这个。上面刚才忘说这一点叫内容自定义哈。这个内容自定义的解释就是说HTML文件中。
25:02
所有标签。或者说叫元素哈。元素。都是。官方定义好的,我们。我们直接引用是吧。我们直接是引用的一个过程。对吧,为什么是P。我也不知道为什么是div,这谁知道啊,人家官方就告诉你用这个东西是吧。哎,这是A面中,但是在插面文件中。所有元素。元素自定义。就比如说现在我想保存一下咱们班的所有同学的信息是吧,哎,我制定一个首先跟标签,咱班是一个班级,我就叫班。看到了吗?然后呢,有一个学生。Student。
26:02
一个每一个学生呢都有。学号。都有。姓名。OK,比如说一号张三。张三。这是一个学生吧,OK。第二个学生。第三个学生。OK,看清这个结构了没?哎,这个层级你必须搞清楚,然后第二点就是什么呢?这个标签的名,你会发现我都毫不犹豫,我噼里啪啦一顿交啊。因为是自定义的,你随便写啊。对吧,所以说你的student ID name好官方啊,好改了。学生啊。学生。一点毛病没有。一点毛病没有好,这回知道了。自我描述性是啥意思了吧?哎,所有的都是自定义的啊,你想叫啥随便叫随便叫。
27:03
OK,这就是咱们这这这就写完了,这就是一个创建插面的一个过程。是不是挺简单的?哎,学了H签名,你再看这个玩意儿就很简单。但是你如果没学天苗的话,你看这个东西还挺挺恶心的啊啊,那咱们就这样定义两个学生,那就把这个结构再写一遍吧。一个学生。学生,是吧,里边有。ID。二号。同级别有姓名。第四。是不是两个同学了,如果是咱们班所有同学呢?哎,就往下走呗,你搞搞搞个几十个是吧,搞上几十个。这就是这样的一个格式,这样的格式。那么官方啊,官方用的这些插庙这些单词,只不过发现什么了,他单词很专业什么。
28:00
哎,其实你看结构跟我一不一样。我这个叫班,这个叫学生,这个叫ID,这个叫name,是不是一样的。哎,他只不过这个名称啊,他们自己记单词了。写单词了。好吧。写起来结构呢,都是一样的。然后你看啊,这个东西叫什么呀,是不是叫元素的属性啊。而在这个标签之间,你看这是标签开始,这是标签结束,中间的这个玩意儿是不是标签的值啊,你看我是不是也这么写的。在哪呢,这呢,看就在这写的,就在标签的中间啊。只会人家写那个专业一些是吧,非常专业的是吧,比如说咱们定一个数据库的连接,对吧,连接那个参数。我就叫什么呢。对吧,数据库连接参数。哦,耶。你看他懵不懵?是吧,里边我就写上什么oracle.jdbc。
29:04
BC点全长啥啊。是吧,我是不是也可以这么去写啊,没问题的。
我来说两句