关于XML的一些事
XML:可扩展标记语言!
01.很像HTML
02.着重点是数据的保存
03.无需预编译
04.符合W3C标准
可扩展:我们可以自定义,完全按照自己的规划来!
标记:计算机所能认识的信息符号!
比如: int num = 5; 教材编号
XML的组成部分:
01.文档声明 <?xml version="1.0" encoding="UTF-8">
02.元素 <p></p>
03.属性 <p id="haha"></p>
04.注释 <!-- -->
05.特殊字符
06.CDATA区域 Character data 字符数据
07.处理指令 引入css样式
<school> <grade name="一班"> <student name="A"></student> </grade> </school>
注意点:
01.xml文件中只能有一个根节点
02.节点要成对出现 有开发和闭合
03.节点必须正确的嵌套!!!
比如不能出现以下格式代码:(嵌套格式不对!!!)
<学校> <班级 名称="一班"> <学生 姓名="A"> </班级> </学生> </学校>
04.严格区分大小写
05.空格和换行都是特殊字符 会被解析器解析
XML,HTML都是一个类似于倒挂的树!
只有一个根节点,枝叶茂盛!
我们把这个倒挂的数称之为===》dom数!
DOM:(Doucument Object Model)文档对象模型
特殊字符:
> >
< <
& &
' '
" "
CDAT区域:XML解析器不会处理,而是当成字符串原样输出!
<![CDATA[xml内容]]>
解析xml文件的方式:
01.DOM:基于xml文档树结构的解析,把xml文件中的内容读取到内存中,比较占内存,消耗资源多!
02.SAX:基于事件的解析。消耗资源小!
03.JDOM:针对于Java的特定模型!满足2 8原则!自身没有解析器,依赖于SAX2!
04.DOM4J:for(4)JDOM的一个分支!源码开放,性能优异,功能强大!
创建第一个maven项目:
1.new project===>maven==>quick==>archetypeCatalog=internal
2.引入需要的pom节点
3.自定义一个xml文件 (学校 年级 班级)
4.需求通过dom4j实现查询学校下面的年级以及班级信息
5.创建一个测试类 书写代码
DTD:Document Type Definition(文檔類型定義)
01.规范我们的编码
02.在浏览器中正常的显示
<!ELEMENT school (grade+),(class|student)>
ELEMENT :元素,关键字
school:元素名称
grade:子元素或者元素类型 CDATA PCDATA (Parse)解析数据,不能包含子元素
():用来给元素分组
| :两者必须选择一个
+ : 1-N,至少出现一次
* : 0-N,可有可无,并且可以多次
?: 0|1,最多一次
,:元素出现的顺序
DTD文档使用方式:
01.内部DTD
<!DOCTYPE 根元素[定义的内容]>
02.外部DTD
<!DOCTYPE 根元素 SYSTEM "dtd文件位置">
03.内外部DTD
<!DOCTYPE 根元素 SYSTEM "dtd文件位置"[定义的内容]>