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)
评论()
收藏
举报