XML-语法-约束-解析--java进阶day19

1.XML

XML的作用

常用来做配置文件,与properties文件一对一不同,XML可实现一对多的功能(一个学生类对应多个学生对象)

2.XML语法

XML中必须存在一个根标签,根标签中间可以定义属性,根标签必须成对出现(有头有尾)

特殊标签也可以定义属性

标签可以嵌套,但是要正确嵌套,不能有交叉形式


XML也带有注释

XML的特殊符号表示形式,如果想使用<或者>,不能直接打印,这样系统会以为是标签,需要使用特殊符号

在CDTAT区域可以写任意的字符,就无须想前面一样用特殊字符拼

3.XML代码演示

1.创建文件,并且后缀名为xml(不是java Class)

2.编写文档声明

3.编写根标签,根标签内部还能继续编写子标签

特殊标签,比如想写<北京>可以用特殊字符拼接,也可以写一个CDTAT区存放

4.XML约束

[1]dtd约束

元素也就是标签,<!ELMENT>代表约束该标签,比如第一行的根标签(persons)内部就只能写person子标签

person子标签只能写name和age子标签,name和age只能写文本格式(#PDATA代表文本)

约束引入

约束重点不在于怎么写,我们都是引入别人写好的约束,我们需要知道如何引入约束

约束分为三种:

1.本地引入

创建一个dtd文件,里面存入写好的约束

根据本地引入的格式引入约束

之后只需要按照系统提供的格式填入信息即可

2.内部引入

约束放里面

3.网络引入

在网上获取约束,然后根据格式引入约束即可


[2]schema 约束

dtd约束和schema约束的区别

因为schema约束本质也是一种xml文件,所以它也会被其他上级文件约束

schema约束的编写步骤

这块只需了解即可,以后我们都用别人写好的

第四步是引入其他文件的约束,第五步是指定约束名称,方便后续引入约束时根据名称找到我们写的约束

复杂元素:标签内部是否包含子标签

#引入schema约束

分为两种引用,第一种直接写根标签名,xmlns写我们指定的名称空间,引入单个约束

# 第二种引入:引入多个约束

第一种引入弊端很明显,只能引入一种约束,但是实际生活会有许多约束需要引入,所以我们需要重点掌握引入多种约束


1.依旧写根标签,但是这次xmlns的网址写的不再是我们自己的约束名称空间,而是上级文件的约束名称空间

2.接着再写一个xmlns,这次是引入我们自己写的约束名称空间。因为属性名重复,导致冲突

3.用冒号给其中一个xmlns起别名,别名为xsi,这样就可以解决名称冲突问题

4.以上级文件别名的形式,调用schemaLocation,引入我们写的约束文件

前面引入上级文件,就是为了调用里面的一个属性:shcemaLoaction 根据这个属性可以引入我们的约束文件

5.引入了我们写的约束文件后,补全信息即可

max=...指定学生个数,use=...代表必须写id,否则报错

5.XML解析

将文件数据加载到java中

DOM解析

将XML文件所有内容加载到内存,存入在文档对象中

1.导入dom4j的jar包,并添加到文件夹中(要能展开才可使用)

2.输入指定的代码,关联要解析的xml文件

3.通过文档对象获取根标签

4.通过根标签,获取到所有子标签(不包括孙标签,即只有student),所有子标签都存在集合中

5.遍历集合,获取到每一个子标签

6.子标签里还有对应的id属性,通过attributeValue获取到id的属性值

7.子标签里还有孙标签(name、age),我们直接获取单个即可

8.获取标签内部的文本并打印

总览

posted @ 2025-06-01 18:07  直実  阅读(36)  评论(0)    收藏  举报